2012-10-03 61 views
1

我試圖創建一個腳本,發佈Facebook頁面上的狀態更新,而無需登錄用戶。我爲應用程序和用戶授予應用程序一次的access_token訪問權限;但我總是得到錯誤Facebook圖形API - 發佈到頁面沒有記錄

Fatal error: Uncaught OAuthException: (#200) The user hasn't authorized the application to perform this action 

儘管我已授予manage_pagespublish_stream許可。 另外,如果我使用了的access_token的頁面出現錯誤

Fatal error: Uncaught OAuthException: Error validating access token: The session is invalid because the user logged out. 

這裏是我使用的代碼。

$facebook = new Facebook(array(
     'appId' => 'XXX', 
     'secret' => 'XXXXXXXXXXX' 
)); 

$post = array(
    'message' => 'Message to user'/*, 
    access_token = "XXXXXXXX"*/ 
); 
$feed = '/[PAGE_ID]/feed'; 

$post_id = $facebook->api($feed, "post", $post); 

謝謝。

編輯:

我終於成功地在用戶的頁面上發佈狀態更新,而該用戶被中斷,我不得不產生通過服務器端身份驗證方法的access_token。

+0

確保您有2個令牌,用戶身份驗證令牌和頁面身份驗證令牌。 –

回答

1

下面是關於如何做一個FB張貼到網頁小碼smaple:

你需要:

  • Your_authToken_for_User

  • 列表項

saved_fb_Page_Token

$facebook = $facebook = new Facebook(array(
       'appId' => $fbAppId, 
       'secret' => $fbAppSecret, 
       'cookie' => true, 
      )); 
    $facebook->setAccessToken("Your_authToken_for_User"); 

    //Now your FB instance is authenticated. 

    $pages= $facebook->api('/me/accounts'); //use the current authenticated FB instance to grab Pages. If you already know your page ID , skip this. 

    //Assuming you have a pageid in $page_id,(the $page_id can be grabbed from the $pages array). 

    $attachment = array(
       'access_token' => $saved_fb_Page_Token, 
       'message' => "foo", 
       'name' => "Bar", 
       'link' => "http://foo.bar", 
       'description' => "barfoo", 
       'picture' => "an image url here", 
      ); 

    $facebook->api('/' . $page_id . '/feed', 'POST', $attachment);//post to fb page 
+0

謝謝你的回答,我設法發佈到它的頁面。但只要用戶註銷,我就面臨「會話無效」錯誤。此外,我相信用戶身份驗證令牌最多有效期爲60天。是否有任何方法繞過用戶認證過程,因爲該應用已經被帳戶驗證過了?或以任何方式獲得永久用戶身份驗證令牌? – user1717044

+0

您需要閱讀以下內容:https://developers.facebook.com/roadmap/offline-access-removal/ –

相關問題