2012-10-03 133 views
1

我一直在閱讀Facebook文檔,我必須缺少一些東西,因爲我只是無法理解如何在沒有實際登錄的情況下獲取頁面的訪問令牌。我正在嘗試使用PHP的Facebook API創建一個PHP函數,這樣當我在我的網站上添加新的故事或教程時,我的網站的應用程序就可以在myy Facebook頁面上自動發佈關於它們的頁面。如何在沒有登錄或沒有用戶交互的情況下獲取Facebook頁面access_token

我有這個功能的工作,但只有當我從圖形API資源管理器中獲取訪問令牌時,儘管訪問令牌在大約一個小時內過期。我似乎無法弄清楚如何以編程方式爲頁面獲取access_token,並且每次都從我的PHP腳本中查詢新的access_token,以便它們不會過期並且不需要用戶交互。

function post_to_facebook($title, $message, $link, $picture) { 

      require '../facebook/src/facebook.php'; 

      $page_token = 'xxx'; 

      $page_id = 'xx'; 

      $facebook = new Facebook(array(
        'appId' => '<app_id>', 
        'secret' => '<app_secret>', 
        'cookie' => false, 
      )); 

      $facebook->setAccessToken($page_token); 

      try { 
        $ret_obj = $facebook->api('/'.$page_id.'/feed', 'POST', array(
              'caption' => $title, 
              'link' => $link, 
              'message' => $message, 
              'picture' => $picture 
            )); 

      } catch(FacebookApiException $e) { 
        error_log($e->getType()); 
        error_log($e->getMessage()); 

        return false; 
      } 

      return true; 
    } 

有人可以解釋我怎麼可以去檢索訪問令牌,而無需通過圖形api資源管理器或有用戶登錄手動查找?

回答

1

這是不可能的。

實現訪問令牌的唯一正確方法是用戶交互(通過登錄過程)。

+0

該死的。我會認爲,通過應用ID和應用密碼,我至少可以在無需用戶交互的情況下與我的網站的FB頁面進行交互。我讀過頁面訪問令牌不會過期的地方?我沒有發現情況是這樣,但我可能會看錯地方。你知道這件事嗎? –

+0

@Jonan Tangale:訪問令牌在60天內過期:http://developers.facebook.com/roadmap/offline-access-removal/ – zerkms

+0

我從圖形API瀏覽器收到的只持續了一個小時。將再玩一些。 –

相關問題