Facebook PHP SDK - 图表返回错误:无效的OAuth访问令牌 [英] Facebook PHP SDK - Graph returned an error: Invalid OAuth access token

查看:291
本文介绍了Facebook PHP SDK - 图表返回错误:无效的OAuth访问令牌的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码:



login.php:

 <?PHP 
require_once __DIR__。 /Facebook/autoload.php;

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

$ helper = $ fb-> getRedirectLoginHelper();
$ permissions = ['email','public_profile']; //可选
$ loginUrl = $ helper-> getLoginUrl('http://www.sportsector.bg/login-callback.php',$ permissions);

echo'< a href ='。$ loginUrl。'>使用Facebook登录!< / a>';

这是我的login-callback.php:

 <?PHP 
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);
session_start();
require_once __DIR__。 /Facebook/autoload.php;
$ fb = new Facebook\Facebook([
'app_id'=>'',
'app_secret'=>'',
'default_graph_version'=> 'v2.2',
]);


try {
//返回一个Facebook\FacebookResponse对象
$ response = $ fb-> get('/ me?fields = id ,name','{access-token}');
} catch(Facebook\Exceptions\FacebookResponseException $ e){
echo'Graph返回错误:'。 $ E->的getMessage();
退出;
} catch(Facebook\Exceptions\FacebookSDKException $ e){
echo'Facebook SDK返回错误:'。 $ E->的getMessage();
退出;
}

$ user = $ response-> getGraphUser();

echo'Name:'。 $用户[名称];

当我点击使用Facebook登录!链接我被重定向到Facebook,我必须点击继续。之后,我回到我的网站上收到以下错误:

 图返回错误:无效的OAuth访问令牌。 

有人可以告诉我我的错误在哪里,我该如何解决?



提前感谢

解决方案

您没有检索到有效的访问令牌。 p>

更改:

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


$ helper = $ fb-> getRedirectLoginHelper();

try {
$ accessToken = $ helper-> getAccessToken();
$ response = $ fb-> get('/ me?fields = id,name',$ accessToken);
....
} catch(Facebook\Exceptions\FacebookResponseException $ e){
...

看看这里


Here is my code:

login.php:

<?PHP
require_once __DIR__ . '/Facebook/autoload.php';

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

$helper = $fb->getRedirectLoginHelper();
$permissions = ['email','public_profile']; // optional
$loginUrl = $helper->getLoginUrl('http://www.sportsector.bg/login-callback.php', $permissions);

echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';

Here is my login-callback.php:

<?PHP
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_start();
require_once __DIR__ . '/Facebook/autoload.php';
$fb = new Facebook\Facebook([
  'app_id' => '',
  'app_secret' => '',
  'default_graph_version' => 'v2.2',
  ]);


try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get('/me?fields=id,name', '{access-token}');
} 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;
}

$user = $response->getGraphUser();

echo 'Name: ' . $user['name'];

When i click the Login with Facebook! link i get redirected to Facebook where i have to click continue. After that i get back on my website receiving the following error:

Graph returned an error: Invalid OAuth access token.

Can somebody tell me where is my mistake and how can i fix this?

Thanks in advance!

解决方案

You didn't retrieve the valid access token.

Change:

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


$helper = $fb->getRedirectLoginHelper();  

try {  
  $accessToken = $helper->getAccessToken();  
  $response = $fb->get('/me?fields=id,name', $accessToken );
  ....
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
...

Have a look here

这篇关于Facebook PHP SDK - 图表返回错误:无效的OAuth访问令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆