web-dev-qa-db-ja.com

現在のユーザーとOAuthException [コード] => 2500に関する情報をクエリするには、アクティブなアクセストークンを使用する必要があります

ユーザーがトークンにアクセスすると、私はエラーが発生しますのようになります。すぐに助けてください。どうすればこれを解決できますか、教えてください

stdClass Object([error] => stdClass Object([message] =>現在のユーザーに関する情報を照会するには、アクティブなアクセストークンを使用する必要があります。[type] => OAuthException [code] => 2500))

require 'facebook-php-sdk-v4/src/Facebook/autoload.php';
require("facebook.php");

$fb = new Facebook\Facebook([
  'app_id' => '1501716620042981',
  'app_secret' => '510d15193610ca682b7f79c156992bb5',
  'default_graph_version' => 'v2.3',
  ]);
$helper = $fb->getRedirectLoginHelper();


try {
  $accessToken = $helper->getAccessToken();
} 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;
}

if (isset($accessToken)) {
  // Logged in!
 echo $_SESSION['facebook_access_token'] = (string) $accessToken;

  // Now you can redirect to another page and use the
  // access token from $_SESSION['facebook_access_token']
} 



     $curl_handle=curl_init();
    curl_setopt($curl_handle, CURLOPT_URL,'https://graph.facebook.com/me/?fields=albums.fields(id,name,cover_photo,photos.fields(name,picture,source)),videos.type(uploaded)&'.$_SESSION['facebook_access_token']);
    curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl_handle, CURLOPT_USERAGENT, 'fb');
    curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    # Return response instead of printing.
    $query = curl_exec($curl_handle);
    curl_close($curl_handle);


    print_r(json_decode($query));
7
Zisu

正しい方法でアクセストークンを提供していません。次のように、access_tokenURLクエリパラメータの値として表示する必要があります。

'https://graph.facebook.com/me/?fields=albums.fields(id,name,cover_photo,photos.fields(name,picture,source)),videos.type(uploaded)&access_token='.$_SESSION['facebook_access_token']

明確にするために、特定のフィールドなしで:

'https://graph.facebook.com/me?access_token='.$_SESSION['facebook_access_token']
7
Hans Z.