2013-06-20 42 views
-1

我有點困惑,因爲我無法弄清楚下面的代碼可能會出錯,因爲它不工作。無法在用戶牆上發佈

require 'facebook.php'; 
$facebook = new Facebook(array(

    'appId' => 'myapplicationid', 
    'secret' => 'myapplicationsecret', 
)); 

$attachment = array(
     'access_token'=> "user access token", 
     'message' => "Message Goes Here", 
     'name' => 'Title goes here', 
     'caption' => "some text", 
     'link' => 'https://apps.facebook.com/somelink/', 
     'description' => 'some description', 
     'picture' => "http://example.com/test.jpg" 
     ); 
try { 
// Proceed knowing you have a user who is logged in and authenticated 
    $result = $facebook->api("/$userid/feed/",'post',$attachment); 
} catch (FacebookApiException $e) { 
error_log($e); 
//$user = null; 
} 

在進行身份驗證並獲取訪問令牌時,我從用戶電子郵件publish_stream和publish_actions獲得了以下權限。我認爲publish_stream是推動牆貼的必要條件。任何在這方面的幫助將不勝感激。

+0

請您得到錯誤更新? –

+0

這就是它不會給出任何錯誤的全部內容,也不會發布:S –

+0

您是否嘗試過執行$ result變量的var_dump,以便您可以查看Facebook api是否返回任何內容? –

回答

1

錯誤很可能是因爲PHP SDK使用應用程序訪問令牌並覆蓋了您放置的訪問令牌。嘗試用

$facebook->setAccessToken('USER_ACCESS_TOKEN');

明確設置也的var_dump或打印錯誤($e)如果您的託管公司不給它。

(同樣的錯誤日誌可用)

Error Logs

+0

好了,現在它工作正常!非常感謝!你能不能指導我如何獲得用戶的長期訪問令牌,因爲據說這是問題所在。訪問令牌已過期 –

+0

只是添加我正在使用GRAPH API方法而不是PHP SDK方法來獲取訪問令牌 https://www.facebook.com/dialog/oauth?client_id=「 。$ app_id 。「&redirect_uri =」。urlencode($ canvas_page)。「&scope = email,publish_stream,publish_actions」; –

+0

沒關係Facebook手冊的幫助!非常感謝您指點正確的方向 –

相關問題