【问题标题】:Facebook API redirect_ui errorFacebook API redirect_ui 错误
【发布时间】: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 更改为各种类型,但没有任何变化。
我已阅读与此相关的所有内容并尝试了所有方法,但仍然相同。
我不知道是什么导致了这个错误。

我的问题是:如何解决这个错误我正确地获得了访问令牌。 print 1 print 2

【问题讨论】:

  • 停止胡乱做无用的事情,例如更改default_graph_version 设置。如果您转到http://localhost/site/externallogin,您的服务器是否会在末尾自动添加/
  • 是的,它在最后添加 /,当我输入 localhost/site/externallogin 时,它会返回 localhost/site/externallogin
  • 那是你的问题。看我的回答。

标签: php facebook facebook-graph-api


【解决方案1】:

运行$helper-&gt;getAccessToken() 的页面必须与您提供给$helper-&gt;getLoginUrl()完全相同 URL 相同。正如您所指出的 http://localhost/site/externallogin 重定向到您的网络服务器上的 http://localhost/site/externallogin/,当您制作 $loginUrl 时添加 /

$loginUrl = $helper->getLoginUrl("http://localhost/site/externallogin/", $permissions);

【讨论】:

  • 我将所有代码 getAccessToken 移动到与 getLoginUrl 完全相同的 URL。我将 / 添加到末尾,例如: $loginUrl = $helper->getLoginUrl("localhost/site/login", $permissions);但我得到了同样的错误
  • @BrunoRamalho 请在您的问题中添加$helper-&gt;getLoginUrl() 的确切输出以及您的服务器上出现错误的页面的确切 URL。
  • getLoginUrl() 的输出是https://www.facebook.com/v2.2/dialog/oauth?client_id=1569923779991238&amp;state=fb7468d97be204df86afd437d175ce5f&amp;response_type=code&amp;sdk=php-sdk-5.1.2&amp;redirect_uri=http%3A%2F%2Flocalhost%2Fsite%2Flogin%2F&amp;scope=email%2Cpublic_profile%2Cuser_friends
  • 以及我收到错误的 URL:http://localhost/site/login/?code=AQA6czFfNEXdaeDhwqTi4VswU2CSaTJftGnNX3j5uescwjY03s3eoUFYBjpAmTnsaOIeMzcyM-PlLlwmnhblwfWOa9wjR13iaqOqRvtXfGS2m66WKfwN8ZgI215RBlJMDO9LKMM-zHIGvpzzK0qRWpMLzRlcei8nfsLBu7vfXw2Z3ob7N0aOeXib5yCg_jzbabGKEhdM60ndaH55l1GIcMyzuEjtAbpLPbD30xDMNJGLBecP4OcmTvGb8OWYvZOaHBgMRVy14svhmoz5Ely99rCBxCJIIo5eNMP1DwktoO3ORB91-ohfY_TkCyXFElEqmAuyLUsFkw1lCE5tDi2_bFerRxeoQQMP8lgi-nZBh7peMw&amp;state=9f6f322b141d8a099bc860f3795131e6#_=
  • @BrunoRamalho 如果我访问您的getLoginUrl URL,它会显示The redirect_uri URL is not supportedlocalhost 是否在您应用的 App Domains developers.facebook.com 设置中?
猜你喜欢
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多