2012-02-09 163 views
0

如何使用PHP SDK和圖形API將狀態消息發佈到頁面(而不是用戶配置文件),同時讓狀態消息顯示爲由頁面ID而不是用戶ID發佈?我的應用可以成功發佈狀態更新到頁面牆,但它似乎是來自管理員用戶名的牆貼,而不是從頁面名稱的狀態更新,因爲它會在Facebook上本地發佈。換句話說,如果頁面名稱是「Cool Stuff」,用戶名是「Joe Smith」,我想在「Cool Stuff」頁面上發佈狀態更新,但我的應用程序帖子從「Joe Smith」中顯示的更新。我已經明確地設置狀態數組中的頁面ID和頁面名稱,但它似乎沒有幫助。這是我現在的代碼:如何使用頁面名稱而不是用戶名稱將狀態發佈到Facebook頁面?

$post_info = array(
'access_token' => $facebook->access_token, 
'type' => 'status', 
'message' => 'Hello World!', 
'from' => array('id' => $page_id, 'name' => $page_name) 
); 
$facebook->api('/' . $page_id . '/feed/', 'post', $post_info); 

有什麼建議嗎?

+0

[SDK:發佈爲網頁上的頁面]的可能副本(http://facebook.stackoverflow.com/questions/8742607/sdk-post-as-page-on-a-page) – DMCS 2012-02-10 12:22:26

回答

0

如果您是該頁面的管理員,只需簡單地進行身份驗證並將狀態作爲頁面的UserID而不是您的UserID發送即可。他們是2個不同的實體。

否則,將解決你的問題:-)只要確保對您的應用程序第一次:-)手動驗證您的網頁

1

,我發現在這裏FB API認證文檔解決這個:

https://developers.facebook.com/docs/authentication/

答案是靠近頁面底部的。搜索「頁面登錄」部分。基本上,您的應用程序必須查詢FB以獲取用戶的頁面訪問令牌列表。您可以找到要用作頁面的令牌,並將其替換爲狀態消息帖子中的普通用戶訪問令牌。因此,我添加了此代碼以獲取用戶的頁面訪問令牌(您的應用必須具有manage_pages權限才能使其工作):

$ all_accounts = $ facebook-> api('/ me/accounts');

如果您使用print_r轉儲$ all_accounts,您會看到它是一組頁面名稱和訪問令牌。抓取您想要的頁面的標記,並用我在第一個問題中發佈的代碼中的頁面標記替換$ facebook-> access_token(用戶的訪問標記)。它會將頁面狀態作爲頁面管理員而不是用戶發佈到頁面上。

相關問題