2014-02-13 44 views
0

我知道這個問題已經被頻繁詢問,但我試圖在Facebook頁面上做一個帖子,因爲2天沒有任何結果。Facebook供稿頁我在哪裏管理

以下是我有:

  • 的應用程序,與APP_ID和APP_SECRET
  • 與ID
  • 我個人ID Facebook頁面

我希望通過編程在頁面上發佈一個feed,並且不知道這是如何工作的。

我試圖通過

https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APP_ID&client_secret=APP_SECRET

,給了我一個訪問令牌,但是當我嘗試

https://graph.facebook.com/ /喂?=的access_token TOKEN

並不起作用。

我也試圖做到這一點與請求我的access_token,但它需要一個redirect_uri,並且給出的令牌是新的URL並需要一個操作(接受)權限。這不是我想要的。

我只是想在那裏,我是管理員在頁面上發佈..

在此先感謝。

回答

2

有4種類型的訪問令牌:

  1. 用戶訪問令牌(包括頁面操作。)
  2. 應用程序訪問令牌(修改和讀取應用程序設置也可以用來發布的Open Graph。動作。)
  3. 頁面訪問令牌(具體到頁面動作。)
  4. 客戶端令牌(很少使用)

https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=APP_ID&client_secret=APP_SECRET

你做了什麼是檢索應用程序訪問令牌,這是無關的頁面。

因此,爲了以Facebook用戶身份登錄Facebook頁面,您應該使用用戶訪問令牌或頁面訪問令牌。

用戶訪問令牌

你將不得不通過授權對話框來檢索您的用戶訪問令牌:

https://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=145634995501895&redirect_uri=https%3A%2F%2Fwww.facebook.com%2Fconnect%2Flogin_success.html%3Fdisplay%3Dpage&response_type=token&fbconnect=1&perms=manage_pages%2Cstatus_update

確保您授予兩個manage_pagesstatus_update許可,如perms =參數所示。究其原因可以在這裏找到:why does posting to facebook page yield "user hasn't authorized the application"

然後你做HTTP POST請求(例如消息=你好)到您的網頁上https://graph.facebook.com/YOUR_PAGE_ID/feed?access_token=YOUR_USER_ACCESS_TOKEN

頁面訪問令牌

你必須使用用戶訪問令牌通過API調用來檢索頁面訪問令牌:

  1. https://graph.facebook.com/me/accounts?access_token=YOUR_USER_ACCESS_TOKEN(獲得令牌的所有頁面)

  2. https://graph.facebook.com/YOUR_PAGE_ID?fields=access_token&access_token=YOUR_USER_ACCESS_TOKEN(找頁面ID特定頁面令牌)

那麼你就HTTP POST請求(例如消息=你好)到您的網頁上3種方式:

  1. https://graph.facebook.com/YOUR_PAGE_ID/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
  2. https://graph.facebook.com/me/feed?access_token=YOUR_PAGE_ACCESS_TOKEN
  3. https://graph.facebook.com/feed?access_token=YOUR_PAGE_ACCESS_TOKEN

更新:

我建議你手動授予用戶訪問令牌(例如登錄/授權對話框出現,用戶需要手動點擊接受APP權限r eQUEST的,你不能編程網頁抓取做到這一點的第一步,因爲它違反了Facebook平臺的TOS), 然後通過https://graph.facebook.com/oauth/access_token?client_id=my_app_id&client_secret=my_app_secret&grant_type=fb_exchange_token&fb_exchange_token=User_Access_Token

它擴展到長住(已過期2個月),現在你有長實時用戶訪問令牌,然後致電https://graph.facebook.com/me/accounts?access_token=LONG_LIVE_USER_ACCESS_TOKEN永遠不會過期的頁面訪問令牌。您可以在https://developers.facebook.com/tools/debug/accesstoken?q=YOUR_PAGE_ACCESS_TOKEN

正如你可以看到調試頁面訪問令牌,該過期日期爲決不

enter image description here

文檔

  1. https://developers.facebook.com/docs/facebook-login/access-tokens/
  2. https://developers.facebook.com/docs/graph-api/reference/app(沒有這種東西發佈到管理頁面)
+0

感謝您的解釋。我已經瞭解了很多,但我不明白如何永久獲取我的用戶訪問令牌。在你的解決方案中,我必須手動調用我的令牌,然後我可以以編程方式執行其他調用。我正在尋找的是以編程方式完成所有的事情。如果我誤解了某些東西,請解釋我,因爲我有點困惑。 – algelos

+0

Facebook不允許您以編程方式調用令牌(即用戶必須與授予的APP權限交互),因爲它違反了平臺的TOS。 http://stackoverflow.com/questions/14381454/extending-expiry-date-of-facebook-access-token-in-graph-api-beyond-2-months回答說:「長期的用戶訪問令牌,你會得到一個無限頁面訪問令牌「,所以我建議你爲你的任務使用頁面訪問令牌。 –

+0

@algelos我已經更新了我的答案。 –