2012-10-09 123 views
2

我正在嘗試閱讀Facebook頁面的收件箱和發件箱。我的第一種方法是嘗試直接訪問page節點的收件箱。下面的URI指示我怎樣努力得到它:嘗試閱讀Facebook頁面的消息時出現OAuth錯誤

/{page-id}/inbox

以下是錯誤消息:

You can only access the \"inbox\" connection for the current user.

然後我試圖訪問conversationsthreads邊緣作爲像這樣一些地方建議:

/{page-id}/conversations

/{page-id}/threads

兩者的URI產生以下錯誤:

(#298) You must be a developer of the application

我無法弄清楚什麼是錯的呢? Facebook上有一些錯誤報告,涉及幾個月前曾報告的「#(298)」,但我不敢相信迄今尚未修復。

歡迎任何替代方法。

+0

如果我使用頁面訪問令牌,'/ pageid/conversations'適用於我。 – CBroe

+1

(代表@Dennis t發佈):即使在創建具有read_mailbox&read_page_mailboxes權限的頁訪問標記之後,對話和線程邊緣也會出現錯誤#298,這些權限分別是根據錯誤消息和文檔所必需的。然後我嘗試了所有可用的權限,但仍然沒有運氣。最後,我將開發人員角色交給了當前沒有任何工作的用戶。 – AndyG

回答

3

如果您使用用戶訪問令牌而不是頁訪問令牌,則會出現此問題。

我在Facebook Graph API Explorer這樣做,我以爲我使用頁面訪問令牌,但我沒有。當我從API Explorer中運行{page-id}/conversations?access_token={page_access_token}時,它的{user_access_token}位於頂部的訪問令牌字段中。這是在資源管理器發送的實際請求中發送的(如Chrome的開發工具所示)。即,API瀏覽器忽略了我輸入的{page_access_token},並且正在使用訪問令牌字段中的值。

清除訪問令牌字段或在該字段中輸入{page_access_token}導致發送預期的{page_access_token}。在瀏覽器和API Explorer中執行一些步驟向我展示了方式。

這是解決問題的步驟:

  1. 獲取用戶訪問令牌:manage_pagesread_page_mailboxes權限*通過點擊從API瀏覽器獲得訪問令牌和選擇特定的權限或訪問下面的網址。通過運行從API瀏覽器/me/accounts或vising以下網址:

    https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&request_type=token&scope=manage_pages,read_page_mailboxes 
    
  2. 獲取頁面訪問令牌。

    https://graph.facebook.com/v2.0/me/accounts?method=GET&format=json&suppress_http_code=1&access_token={user-access-token} 
    
  3. 獲取對話:(如果使用API​​瀏覽器粘貼在訪問令牌場),從上述步驟得到的談話使用的頁面訪問令牌**通過運行/{page-id}/conversations或vising的下面的網址。

    https://graph.facebook.com/v2.0/{page-id}/conversations?method=GET&format=json&suppress_http_code=1&access_token={page-access-token} 
    

* read_mailbox權限不是必需的,相反,我在我的評論說以上。實際上,錯誤消息是不正確的,嘗試訪問頁面邊緣用戶訪問令牌錯誤地給用戶訪問錯誤,而不是無效的頁面訪問令牌錯誤。

**用戶必須是Facebook頁面的管理員才能訪問其會話。

相關問題