2015-10-04 138 views
0

該腳本的目標是在創建內容後,在我的個人資料和我的羣組上自動發佈指向特定頁面的鏈接。Facebook API 2.2:嘗試發佈鏈接時出現圖表錯誤

但是,所有我得到了什麼,當我啓動測試腳本這裏下面,這是返回的字符串:

Graph returned an error: An active access token must be used to query information about the current user. 

事實上,與應用相關的令牌是由FB Developers網站給出。 我也嘗試組合:

634060413388093|9ed702cc524a1cbb59ca1fb7a17839f1 

但我仍然得到同樣的回報

<?php 
$path = getcwd(); 

require_once $path . '/include/Facebook/autoload.php'; 

$fb = new Facebook\Facebook([ 
    'app_id' => '634060413388093', 
    'app_secret' => '9ed702cc524a1cbb59ca1fb7a17839f1', 
    'default_graph_version' => 'v2.2', ]); 

$linkData = [ 
    'link' => 'http://www.example.com/page', 
    'message' => 'here the new page on my site.', 
    ]; 

try { 
    // Returns a `Facebook\FacebookResponse` object 
    $response = $fb->post('/me/feed', $linkData, '634060413388093|bnTyPyRtsZSLHoc1B1w772cz3BU'); 
    } catch (Facebook\Exceptions\FacebookResponseException $e) { 
     echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 
    } catch (Facebook\Exceptions\FacebookSDKException $e) { 
     echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
    } 


$graphNode = $response->getGraphNode(); 
echo 'Posted with id: ' . $graphNode['id']; 

?> 

回答

0

好的我在這一刻找到了路。我嘗試過任何示例和幫助,任何建議,但沒有解決。 因此,我將它張貼,希望它可以幫助別人跟我同一個問題:

訪問令牌, APP_ID | app_secret但它以另一種方式獲得: 要得到正確的訪問otken,一個應該去:「工具支持&」

https://developers.facebook.com

下選擇「圖形API資源管理器」 在右上角,有一個下拉菜單中調用「應用程序」。 單擊並選擇創建的應用程序。 選擇「訪問令牌」顯示,和複製/粘貼在現場一邊$linkDAta變量:

$response = $fb->post('/me/feed', $linkData, '{access-token}');

在這一點上,啓動腳本,因爲它是,它的工作:)

編輯: 如果您需要發佈的羣體,只是改變了'/me/feed'與「{group_id}/feed'

1

你需要使用一個用戶訪問令牌讀取用戶的飼料。 '我'是指與用戶訪問令牌關聯的用戶。應用訪問令牌不與任何特定用戶相關聯。

這導致了第二點,這更重要。你永遠不應該透露你的應用祕密,特別是不要在堆棧溢出或任何公開的地方。你應該隱藏你的SO問題的一部分,或者更好的,創建一個新的FB應用程序。

+1

編輯的問題不會幫助,但它仍然將是誰可以看到編輯歷史用戶可見。然而,創建一個新的應用程序並不是必需的 - 應用程序的祕密(這是應用程序訪問令牌在管道符號之後的第二部分)可以在應用程序儀表板中重置。但是現在應該明確地做到這一點。 – CBroe

+0

嗨困熊貓:是的,我重置密碼,以便這裏發佈的那個不再有效。 關於用戶訪問令牌:我在黑暗中,從未使用過這些API ...... –

相關問題