2016-12-15 45 views
0

我正在開發一個應用程序,用於從對話中獲取消息。這裏是我的代碼:Facebook Graph API PHP SDK無法識別會話變量

// facebook SDK startup 
$fb = new Facebook\Facebook([ 
    'app_id' => '[my_app_id]', 
    'app_secret' => '[my_app_secret]', 
    'default_graph_version' => 'v2.4', 
]); 


$request = new Facebook\FacebookRequest(
          $session, 
         'GET', 
         '/{converation-id}', 
         array(
          'fields' => 'gender' 
           ) 
          ); 

          $response = $request->execute(); 
          $graphObject = $response->getGraphObject(); 
          /* handle the result */ 
          var_dump($graphObject); 

當我運行它,我得到這個錯誤:

Undefined variable: $session

我知道,我還沒有初始化,但我感到困惑的是什麼樣的價值做我必須分配它或我需要連接這個變量?有什麼建議麼?

+0

這似乎是過時的代碼,爲PHP SDK v4編寫。在當前版本v5中,這取決於不同的參數:https://developers.facebook.com/docs/php/FacebookRequest/5.0.0 – CBroe

回答

0

這個已經過時了。

對於最新版本,您不需要$session變量。在新版本中,$request->execute()方法也丟失了。

嘗試這樣:

// facebook SDK startup 
$fb = new Facebook\Facebook([ 
    'app_id' => '[my_app_id]', 
    'app_secret' => '[my_app_secret]', 
    'default_graph_version' => 'v2.4', 
]); 

$request = $fb->request('GET', '/{conversation-id}', array('fields' => 'gender')); 

// Send the request to Graph 
try { 
    $response = $fb->getClient()->sendRequest($request); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    // When Graph returns an error 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    // When validation fails or other local issues 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 

$graphNode = $response->getGraphNode(); 
var_dump($graphNode); 
0

我從FB SDK得到了同樣的問題。 我已經嘗試了來自Fabian的代碼,它要求我現在添加訪問令牌。

$request = $fb->request(
    'GET', 
    '/{conversation-id}', 
    array(
    'fields' => 'posts.limit(10)', 
    'access_token' => '{token_id}' 
) 
); 

它的工作原理!我得到了數組結果。