facebook Graph returned an error: 无法加载网址

login.php

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

login-callback.php

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();

上面是我两php文件的代码,当我点击login.php输出的链接后跳转到第二个php里,就报错误
【Graph returned an error: 无法加载网址: 这个 URL 的域名未包含应用的域名。为了能够加载 URL,请在应用设置的应用域名字段添加应用的所有域和子域。】

我已经在facebook开发者平台添加了这个域名,我也仔细检查了url也没发现不一样的地方,不知道为什么还报这个错误,麻烦弄过facebook登录的朋友帮我看看。

阅读 5.6k
3 个回答

我联系上facebook官方客服了,他们让我把php sdk升级到5.6.2这个版本,这个问题就解决了,之前我的版本是5.6.1

你的域名应该是没有加入到 Valid OAuth Redirect URIs 里面,估计你只在设置里面加入了.

clipboard.png

新手上路,请多包涵

我的也是出现没
clipboard.png

Graph returned an error: 无法加载网址: 这个 URL 的域名未包含应用的域名。为了能够加载 URL,请在应用设置的应用域名字段添加应用的所有域和子域。但是升级为5.62的版本还是一样的错误,请问你的QQ号是多少啊?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题