Php Facebook API重定向用户界面错误

Php Facebook API重定向用户界面错误,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正在实现一个使用Facebook登录的新应用: 在developers.facebook.com上,我设置了以下设置: 应用程序域:(空) 网站URL: 客户端OAuth登录:是 Web OAuth登录:是 强制Web OAuth重新验证:否 嵌入式浏览器OAuth登录:否 有效的OAuth重定向URI: 在我的应用程序中,登录链接: $facebook = new Facebook\Facebook([ 'app_id' => FB_APP_ID, 'app_secret' =

我正在实现一个使用Facebook登录的新应用:
在developers.facebook.com上,我设置了以下设置:
应用程序域:(空)
网站URL:
客户端OAuth登录:是
Web OAuth登录:是
强制Web OAuth重新验证:否
嵌入式浏览器OAuth登录:否
有效的OAuth重定向URI:

在我的应用程序中,登录链接:

$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>';
但是当我被重定向时,我得到了以下错误:

图形返回错误:验证验证代码时出错。请 确保您的重定向uri与您在中使用的uri相同 OAuth对话框请求

我尝试将默认的\u graph\u版本更改为2.2,将有效的OAuth重定向URI和返回url更改为所有类型,但没有任何更改。
我已经阅读了与此相关的所有内容,并尝试了所有方法,但仍然是一样的。
我不知道是什么导致了这个错误

我的问题是:如果我正确获取访问令牌,如何修复此错误。

运行的页面
$helper->getAccessToken()
必须与您提供给
$helper->getLoginUrl()
的URL完全相同。正如您所指出的
http://localhost/site/externallogin
重定向到
http://localhost/site/externallogin/
在您的Web服务器上,在生成
$loginUrl
时添加
/

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

停止随意地胡闹,做一些无用的事情,比如更改
default\u graph\u version
设置。如果您转到
http://localhost/site/externallogin
您的服务器是否会在末尾自动添加一个
/
?是的,它会在末尾添加/,当我键入时,它会返回,这是您的问题。请看我的答案。我将所有代码getAccessToken移动到与getLoginUrl完全相同的URL。我在末尾添加了/,比如:$loginUrl=$helper->getLoginUrl(“,$permissions”);但我得到了同样的结果error@BrunoRamalho请在问题中添加
$helper->getLoginUrl()
的确切输出以及服务器上出现错误的页面的确切URL。getLoginUrl()的输出是
https://www.facebook.com/v2.2/dialog/oauth?client_id=1569923779991238&state=fb7468d97be204df86afd437d175ce5f&response_type=code&sdk=php-sdk-5.1.2&redirect\u uri=http%3A%2F%2Flocalhost%2Fsite%2Flogin%2F&scope=email%2Cpublic\u profile%2Cuser\u friends
以及我收到错误的URL:
http://localhost/site/login/?code=AQA6czFfNEXdaeDhwqTi4VswU2CSaTJftGnNX3j5uescwjY03s3eoUFYBjpAmTnsaOIeMzcyM-PlLlwmnhblwfWOa9wjR13iaqOqRvtXfGS2m66WKfwN8ZgI215RBlJMDO9LKMM-ZIGVPZK0QRWPMLZRLCEI8NFSLBU7VFXW2Z7Ob7N0Ob7N0AoExib5YcG_JzbababgkeHdm60ndah5GICmYZueJtabD0D0DmNjglbec4OcV8OwKbZOwK8OwK5Ely99RcBxJiio5Enwk91-Ofy_TkCyXFElEqmAuyLUsFkw1lCE5tDi2_bferrxeoqmp8lgi-nZBh7peMw&state=9f6f322b141d8a09bc860f3795131e6())
@BrunoRamalho如果我转到您的
getLoginUrl
URL,它声明
重定向的uri URL不受支持
。您的应用程序的
应用程序域中的
localhost
是否在设置中?
$loginUrl = $helper->getLoginUrl("http://localhost/site/externallogin/", $permissions);