【发布时间】:2016-03-01 16:43:07
【问题描述】:
我正在实施一个使用 Facebook 登录的新应用:
在developers.facebook.com 上,我设置了设置:
应用程序域:(空)
网站网址:http://localhost/site/
客户端 OAuth 登录:是
Web OAuth 登录:是
强制 Web OAuth 重新认证:否
嵌入式浏览器 OAuth 登录:否
有效的 OAuth 重定向 URI:http://localhost/site/externallogin/
在我的应用中登录链接:
$facebook = new Facebook\Facebook([
'app_id' => FB_APP_ID,
'app_secret' => FB_APP_SECRET,
'default_graph_version' => 'v2.5',
]);
$helper = $facebook->getRedirectLoginHelper();
$permissions = ['email', 'public_profile', 'user_friends'];
$loginUrl = $helper->getLoginUrl("http://localhost/site/externallogin", $permissions);
echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a><hr>';
还有我的外部登录页面:
$helper = $facebook->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;
}
但是当我重定向时出现以下错误:
图表返回错误:验证验证码时出错。请 确保您的 redirect_uri 与您在 OAuth 对话请求
我尝试将 default_graph_version 更改为 2.2,将有效 OAuth 重定向 URI 和返回 url 更改为各种类型,但没有任何变化。
我已阅读与此相关的所有内容并尝试了所有方法,但仍然相同。
我不知道是什么导致了这个错误。
【问题讨论】:
-
停止胡乱做无用的事情,例如更改
default_graph_version设置。如果您转到http://localhost/site/externallogin,您的服务器是否会在末尾自动添加/? -
是的,它在最后添加 /,当我输入 localhost/site/externallogin 时,它会返回 localhost/site/externallogin
-
那是你的问题。看我的回答。
标签: php facebook facebook-graph-api