我一直在嘗試了幾天,現在成功地發佈到他們的網站客戶端的Facebook頁面牆時200。我需要能夠做到這一點,而無需登錄的用戶,這點我是能夠實現與要在文檔中提供的URL生成擴展的訪問令牌。Facebook的PHP SDK - 錯誤#試圖用setExtendedAccessToken
我所試圖做的是使用PHP SDK在這個問題來獲取擴展標記 - Facebook PHP SDK: getting "long-lived" access token now that "offline_access" is deprecated,但是我收到以下錯誤: (#200) The user hasn't authorized the application to perform this action
由圖形生成的身份驗證令牌的調試API資源管理器顯示自己的用戶,包括必要的manage_pages
和status_update
範圍。不知道這是相關的 - 但是,如果我跑me/accounts
,該perms
陣列不會有問題的網頁下的數據列出來。
這裏是我試圖使用的代碼:
$facebook = new Facebook(array('appId' => 'xxxxxxx', 'secret' => 'xxxxxx'));
$pageID = 'xxxxxxxx';
$facebook->setExtendedAccessToken();
$accessToken = $facebook->getAccessToken();
try {
$page_info = $facebook->api("/$pageID?fields=access_token");
print_r ($page_info);
} catch (FacebookApiException $e) {
echo $e->getMessage();
}
if(!empty($accessToken)) {
$args = array(
'access_token' => $accessToken,
'message' => "Catch phrase!"
);
$facebook->api("/$pageID/feed","post",$args);
} else {
// Handle error
}
UPDATE 我發現,如果我呼應的getAccessToken()
輸出端的結果是應用程序ID,並通過|
分離的祕密 - 這是我應該接受的嗎?對我來說似乎很奇怪,因爲我看到的所有其他代幣都是隨機的,而且更長。
任何幫助都將不勝感激,我至今浪費在這那麼多時間。它似乎只適用於其他人。
UPDATE 2 嗨,沃倫!看起來你是這些零件的新手,歡迎!感謝您對此的研究,是否需要將這些標記保存到數據庫表中,並檢查每次嘗試發佈時它們是否已過期?我只是張貼到頁面的頁面,顯然這需要在頁面access_token
而不是什麼我假設是用戶access_token
。我相信我也會在某處閱讀頁面訪問令牌永不過期,但如果我刷新Graph API Explorer頁面或請求新的用戶令牌,它將發生變化。十分不解..不知道是不是我甚至需要處理在此應用程序獲得新令牌或只使用一個頁面access_token
出現工作?
嗨我沒有答案,因爲我太尋找相同的解決方案。我發現這使我覺得現在不可能。 https://developers.facebook.com/roadmap/offline-access-removal/如果用戶已經登錄,我可以得到這個工作,但是如果你需要確保它在用戶註銷時工作。 –