2015-01-20 59 views
3

我想弄清楚如何訂閱實時更新到頁面我有access_token(但不是我的應用程序的頁面)。我使用的是考拉的寶石,一切似乎不錯,但我似乎無法弄清楚如何指定我想訂閱的頁面:如何訂閱Facebook的特定頁面的對話實時更新

@updates = Koala::Facebook::RealtimeUpdates.new(:app_id => YOUR_APP_ID, :app_access_token => YOUR_ACCESS_TOKEN) 
@updates.subscribe("page", "conversations", YOUR_CALLBACK_URL, YOUR_VERIFY_TOKEN) 

上面的代碼考拉說實現,但它不關於如何選擇我們正在訂閱哪個頁面或在哪裏插入page_access_token,無論在哪裏說。

即使在查看Facebook example,它也沒有任何地方可以輸入頁面訪問令牌。

我在哪裏指定我要訂閱哪個Facebook頁面?

編輯:當你訂閱一個「頁面」「對話」你訂閱哪一頁?所有這些與一個app_access_token?我如何知道哪些頁面與app_access_token關聯?

回答

2

在您鏈接的例子,有一些代碼來指定頁面訪問令牌:

看底部PHP腳本示例:

$session = new FacebookSession('<PAGE_ACCESS_TOKEN>'); 

對於設置頁面訪問令牌,看看

+0

是的但我如何將頁面訪問令牌傳遞給@ updates.subscribe(如考拉寶石中所示),如下所示:@ updates.subscribe(「user」,「first_name,last_name」,YOUR_CALLBACK_URL,YOUR_VERIFY_TOKEN) – 2015-03-03 18:01:21

+0

考拉什麼都沒有實時更新要求一個令牌...我很困惑 – 2015-03-03 18:07:33

+0

我想要做的是訂閱另一個頁面的對話(而不是我自己的應用程序的頁面),我確實有那個頁面的訪問令牌 – 2015-03-03 18:15:49

0

下面是我已經考拉在我的應用程序實現,我已經得到(不通過RealtimeUpdates)成功頁面的談話。這裏是我是如何做到的 -

添加以下到我的Gemfile

gem 'omniauth-facebook' 
gem 'koala' 

我創建Facebook的憑據YAML文件 -

development: 
    app_id: <APP ID> 
    secret: <APP Secret> 

添加以下initializersconfig/initializers

1.Facebook初始化爲facebook.rb -

FACEBOOK_CONFIG = YAML.load_file("#{::Rails.root}/config/facebook.yml")[::Rails.env] 

2.Omniauth初始化爲omniauth.rb -

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, FACEBOOK_CONFIG['app_id'], FACEBOOK_CONFIG['secret'], {: scope => 'read_mailbox'} 
end 

的許可read_mailbox是關鍵。如果你不知道你是否有read_mailbox許可,您可能必須要求它在你的應用程序的頁面Status and Review選項卡下(見下截圖) - 儘管我不使用RealTimeUpdates

enter image description here

,我像做以下獲得的談話 -

def get_conversations(page_id) 
    access_token ||= Koala::Facebook::OAuth.new(FACEBOOK_CONFIG['app_id'], FACEBOOK['secret']).get_app_access_token 

    graph = Koala::Facebook::GraphAPI.new(access_token) 
    @fb_conversations = graph.get_object(page_id + '/conversations') 
end 

嘗試擊中Graph API explorer{page_id}/conversations與您的訪問令牌,看看如果你得到一個錯誤。