首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >facebook-php-sdk登录图返回一个错误

facebook-php-sdk登录图返回一个错误
EN

Stack Overflow用户
提问于 2018-05-02 07:41:34
回答 1查看 717关注 0票数 0

login.php码

代码语言:javascript
复制
if(!session_id()) {
    session_start();
}

require_once __DIR__ . '/vendor/autoload.php';

$facebook_appId = '123';
$facebook_appSecret = '123';

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

$helper = $fb->getRedirectLoginHelper();

$permissions = ['email']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://www.123.com/login-callback.php', $permissions);

echo '<a href="' . htmlspecialchars($loginUrl) . '">Login via Facebook!</a>';

登录-callback.php代码

代码语言:javascript
复制
    if(!session_id()) {
    session_start();
}

require_once __DIR__ . '/vendor/autoload.php';

$facebook_appId = '123';
$facebook_appSecret = '123';

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

// Use one of the helper classes to get a Facebook\Authentication\AccessToken entity.
//   $helper = $fb->getRedirectLoginHelper();
//   $helper = $fb->getJavaScriptHelper();
//   $helper = $fb->getCanvasHelper();
//   $helper = $fb->getPageTabHelper();

try {
  // Get the \Facebook\GraphNodes\GraphUser object for the current user.
  // If you provided a 'default_access_token', the '{access-token}' is optional.

  $helper = $fb->getRedirectLoginHelper();  
  $accessToken = $helper->getAccessToken();
  $response = $fb->get('/me?fields=id,name', $accessToken );
  // $response = $fb->get('/me', $accessToken );

} 
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;
}

$me = $response->getGraphUser();
echo 'Logged in as ' . $me->getName();

当我单击"login.php“输出链接时,它会跳转到”log-callback.php“,并打印以下错误消息。我该如何解决这个问题?

图形返回一个错误:无法加载URL:此URL的域名不包含应用程序的域名。为了能够加载URL,在应用程序设置的application字段中添加应用程序的所有域和子域。

但是,我在facebook开发平台中添加了相应的url。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 17:25:25

现在,在严格模式下,OAuth对于FB是强制性的:您必须在应用程序设置板中的FB参数中设置回调脚本的URI,并传递与getAccessToken()方法的参数相同的回调URL:

代码语言:javascript
复制
try {
  $accessToken = $helper->getAccessToken('http://yourdomain.com/login-callback.php');
}// ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50129423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档