2012-10-12 86 views
3

我知道,這個問題被問了上百次,但沒有給出的解決方案適合我。 我試圖在當前用戶擁有的每個頁面的牆上張貼。所以,我首先獲得了publish_actions,read_stream,manage_pages和offline_access的權限。然後,我通過/我/權限檢查,確認用戶確實授予了這些權限。PHP Facebook API貼在牆上

於是,我試圖讓用戶和後頁面的壁的所有頁面,如果用戶是admin:

$accounts = $facebook->api("/me/accounts", "GET", array("access_token"=>$facebook->getAccessToken())); 

$data = $accounts["data"]; 

foreach ($data as $page) 
{ 
    if (isset($page["perms"]) && in_array("CREATE_CONTENT", $page["perms"]))) 
    { 
     $facebook->api("/".$page["id"]."/feed", "POST", array("link"=>$link, "access_token"=>$page["access_token"])); 
    } 
} 

但是,張貼在網頁壁失敗,並衆所周知的錯誤信息

未捕獲OAuthException:(#200)的用戶無權執行這個動作

任何想法的應用程序?我的錯在哪裏?

+0

必須有這麼幾個正當的理由才能做到這一點:/ – Igy

回答

2

如果您可以通過Graph API Explorer或cURL爲其中一個頁面創建相同的調用,那麼您的邏輯是正確的。因此,我會在page/id調用中發出try/catch來查看特定頁面是否搞亂了循環。

try { 
    $facebook->api("/".$page["id"]."/feed", "POST", array("link"=>$link, "access_token"=>$page["access_token"])); 
    } catch (FacebookApiException $e) { 
    error_log($e . " for: " .$page["id"]); 
    } 
} 
+0

我成功地使用了Graph API Explorer。我使用必要的權限生成了access_token,使用/ me/accounts獲取我的頁面的id和access_token,並使用此數據發佈到/ me/feed。但是,我沒有成功使用cURL和/或php-api。我不知道發生了什麼事。 – user1742364

+0

@ user1742364你可以用純捲曲構建查詢並在你的問題中顯示它嗎? – phwd

+0

對不起,我不知道如何發佈純捲曲,但這就是我如何在PHP中使用它:[link](http://www.michaelholzhauser.de/fb.txt) – user1742364