使用 php sdk 在 facebook 中获取访问令牌时出错

Posted

技术标签:

【中文标题】使用 php sdk 在 facebook 中获取访问令牌时出错【英文标题】:Error to get the access token in facebook using php sdk 【发布时间】:2017-04-14 10:33:14 【问题描述】:

我正在使用的代码:

$fb = new Facebook\Facebook([
  'app_id' => 'app-id',
  'app_secret' => 'app-secret',
  'default_graph_version' => 'v2.6',
  ]);

$helper = $fb->getCanvasHelper();

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)) 
  echo 'No OAuth data could be obtained from the signed request. A user has not authorized your app yet.';
  exit;


// Logged in
echo '<h3>Signed Request</h3>';
var_dump($helper->getSignedRequest());

echo '<h3>Access Token</h3>';
var_dump($accessToken->getValue());

输出: 这仅表明:无法从签名请求中获取任何 OAuth 数据。用户尚未授权您的应用

我正在使用我的页面的app_id and app_secret

【问题讨论】:

这意味着您应该在您的 Facebook 页面上自动化您的应用程序,以便允许在您的 Facebook 帐户中执行任何操作。详情在 Facebook 帮助中:facebook.com/help/262314300536014 输出本身显示解决方案,授权你的应用 你能给我指导授权吗? 我应该提到应用程序域,那是什么?? @SergeyLebedev,我没有从你的文档中得到任何帮助。 【参考方案1】:

您使用的示例“(...) 涵盖了从 APP CANVAS (...) 的上下文中获取访问令牌和签名请求”。 https://developers.facebook.com/docs/php/howto/example_access_token_from_canvas

应用画布的上下文意味着您的应用嵌入在 Facebook (iframe) 上。 https://***.com/a/41669757/2911960

我假设您想在您的网站上使用 API。然后你正在寻找这个: https://developers.facebook.com/docs/php/howto/example_facebook_login

【讨论】:

以上是关于使用 php sdk 在 facebook 中获取访问令牌时出错的主要内容,如果未能解决你的问题,请参考以下文章

PHP sdk 获取用户的国家

Facebook sdk 使用 php:如何获取已连接用户的用户 ID

facebook 使用 PHP SDK 打开图计数共享

Facebook PHP SDK - 无需 Facebook 连接即可获取我的应用用户的用户名和个人资料图片

Facebook PHP SDK 4.0 使用 Lumen 登录

会话总是返回 null facebook php sdk