2011-01-05 89 views
1

我爲網站創建了一個CMS,並且想要添加功能將某些內容(例如:新聞)發佈到該網站的FB頁面[不是用戶配置文件] 。FB GraphAPI:在FB頁面的牆上從另一個網站發佈

我讀過FB的文檔,可能會發現我需要一個FB應用程序,它必須能夠訪問該頁面。然後,我將能夠從我的網站進行身份驗證,並將鏈接發佈到頁面上。

我已經創建了示例頁面,並且爲空應用程序(無工作代碼)。然後我增加了它的頁面[在應用程序配置文件頁上有一個按鈕「添加到我的頁面」]。應用程序從來沒有要求任何權限,事實上,我不知道如何「強制」我的應用程序請求從頁面的權限...

現在,從我的服務器我認證爲應用程序:

$postArr = Array(
      'grant_type'=>'client_credentials', 
      'scope'=>'publish_stream', 
      'client_id'=>$appId, 
      'client_secret'=>$appSecret 
      ); 
$access_token = CURL_post('https://graph.facebook.com/oauth/access_token',$postArr,true); 

我得到一個訪問令牌,並嘗試發佈到頁面的牆:

$postArr = Array(
      'access_token'=>$access, 
      'message'=>"Message!", 
      'link'=>'http://egern.net/', 
      'name'=>"TITLE", 
      'caption'=>"TITLE2!"); 
$r = CURL_post("https://graph.facebook.com/MYPAGEID/feed",$postArr,true); 

我得到以下錯誤:(#200)的用戶無權執行此操作的應用程序

現在我無法理解:頁面應該如何授權應用程序?

謝謝。

回答

1

爲了能夠發佈使用圖形API你的頁面有幾個步驟來做到這一點:

  1. 頁的管理員需要許可manage_pagesreference安裝應用程序。而publish_stream步驟3
  2. 現在查詢賬戶方法->api('/me/accounts?access_token=XXX')用你剛纔會檢索所有網頁(賬戶)及其相應的access_token
  3. 使用ACCESS_TOKEN到post您的「新聞」的網頁,你的->api('/page_id/feed', 'post', $postArr)
  4. 頁的access_token

幾乎相同的指令可用here

+0

非常感謝您的回答! – 2011-01-06 09:39:44

+0

所以,我需要驗證頁面的管理員(而不是應用程序),一切都會工作。但是現在我找不到如何將PHP認證爲FIXED用戶(管理員)!我知道如何顯示每個人的登錄頁面,但我不需要登錄頁面,我希望PHP自動登錄爲一個FIXED用戶...再次感謝 – 2011-01-06 09:42:26

+0

我不認爲圖形api有這個功能,但什麼你可以做的是獲得'offline_access'權限,這樣你永遠不會再次驗證用戶 – ifaour 2011-01-06 18:51:29

相關問題