我正在試圖爲question2answer(知識不必要)構建插件,當發佈新問題時,它會將該問題作爲Facebook頁面上的活動發佈。實現這一點不成問題。我遇到的是堅持。Php Facebook API頁面訪問令牌
根據我的理解,如果我錯了,請糾正我的錯誤,是您只能通過管理員用戶的帳戶直接獲取頁面的訪問令牌。當存儲訪問令牌的頁面的管理員從註銷時過期時,這會造成發佈時的問題。那麼,我們不能指望他們永遠保持登錄狀態,對吧?
還有另外一種方法可以解決這個問題嗎?也許可以讓用戶在該頁面上發帖?
這是我目前使用的代碼(這不是最終的,沒有錯誤處理)。凡是說qa_opt只是存儲在數據庫question2answer東西
$facebook2 = new Facebook(array(
'appId' => qa_opt('facebook_app_id'),
'secret' => qa_opt('facebook_secret')
));
$facebook2->setAccessToken(qa_opt('facebook_page_access_code'));
// Try to extend token
$access_token = $facebook2->getExtendedAccessToken();
// As is, with the extended token, we currently post as the user, not the page. Let's fix that
$accounts = $facebook->api('/me/accounts?access_token='.$access_token);
foreach ($accounts as $account)
{
if ($account['id'] == qa_opt('facebook_page_id'))
{
$page_access_token = $account['access_token'];
break; // Stop processing foreach
}
}
$fbPageArgs = array('access_token' => $page_access_token,
'message' => 'A new question has been created!',
'link' => qa_q_path($params['postid'], $params['title'], true),
'name' => $params['title'],
'description' => $params['text']
);
$facebook2->api("/".qa_opt('facebook_page_id')."/feed?fields=access_token","post",$fbPageArgs);
有想法的人嗎?肯定有人遇到過這個。 – Eric