[英]Facebook Post Link as Page Issue
我正在編寫一個簡單的Facebook頁面標簽應用程序,它將使我可以將消息(狀態更新,鏈接,照片和視頻)發布到多個頁面。
我在嘗試將各種內容發布到頁面的時間軸上的Facebook API(使用PHP SDK)遇到問題。
當我發布狀態更新時,它會在頁面名稱下成功發布。
$pages = $this->facebook->api('me/accounts', 'GET');
$pages = json_decode(json_encode($pages), FALSE);
foreach ($pages->data as $page) {
if (in_array($page->id, $_POST['pages'])) {
$data = array(
'access_token' => $page->access_token,
'message' => Arr::get('status', $_POST)
);
$queryString = http_build_query($data);
$this->facebook->api("$page->id/feed?".$queryString, 'POST');
}
}
一旦我添加了更多參數(即嘗試發布鏈接),該帖子就會在我的管理員帳戶下發布(即Chris Hayes發布了指向“ Page X”的鏈接)。
$pages = $this->facebook->api('me/accounts', 'GET');
$pages = json_decode(json_encode($pages), FALSE);
foreach ($pages->data as $page) {
if (in_array($page->id, $_POST['pages'])) {
$data = array(
'access_token' => $page->access_token,
'link' => Arr::get('link', $_POST),
'message' => Arr::get('status', $_POST)
);
$queryString = http_build_query($data);
$this->facebook->api("$page->id/feed?".$queryString, 'POST');
}
}
我不知道這是怎么回事。 從字面上看,唯一改變的是添加“ link”參數。 如果有人可以幫助我,我將不勝感激!
編輯我獲得的權限是:電子郵件,user_about_me,user_likes,user_birthday,manage_pages,publish_stream
克里斯,問候
我在另一篇文章中找到了答案。
$pages = $this->facebook->api('me/accounts', 'GET');
$pages = json_decode(json_encode($pages), FALSE);
foreach ($pages->data as $page) {
if (in_array($page->id, $_POST['pages'])) {
$this->facebook->setAccessToken($page->access_token);
$data = array(
'access_token' => $page->access_token,
'name' => 'Facebook API: Posting As A Page',
'link' => 'https://www.webniraj.com/2012/08/09/facebook-api-posting-as-a-page/',
'caption' => 'The Facebook API lets you post to Pages you own automatically - either as real-time updates or in the case that you want to schedule posts.',
'message' => 'Check out my new blog post!'
);
$queryString = http_build_query($data);
$this->facebook->api("$page->id/feed?".$queryString, 'POST');
}
}
關鍵是通過Facebook SDK設置頁面訪問令牌。 這可能是因為我在其他地方使用該庫將訪問令牌設置為用戶的令牌。 我猜該庫必須覆蓋作為參數發送的令牌。
$this->facebook->setAccessToken($page->access_token);
編輯:我剛剛發現的另一個問題是我自己構建查詢字符串並將其附加到API端點,如下所示:
$this->facebook->api("$page->id/feed?".$queryString, 'POST');
您應該做的是發送$ data數組作為API調用的第三個參數:
$this->facebook->api("$page->id/feed", 'POST', $data);
PHP SDK在$ data中尋找一個'access_token'參數,因為我沒有在該數組中發送數據,所以找不到它(因此默認使用我之前設置的用戶訪問令牌)。
在將數據作為API調用的第三個參數發送之后,我能夠刪除以下行:
$this->facebook->setAccessToken($page->access_token);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.