Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用启用严格模式的Facebook PHP SDK登录时出错_Facebook_Facebook Php Sdk_Facebook Login - Fatal编程技术网

使用启用严格模式的Facebook PHP SDK登录时出错

使用启用严格模式的Facebook PHP SDK登录时出错,facebook,facebook-php-sdk,facebook-login,Facebook,Facebook Php Sdk,Facebook Login,我收到Facebook的通知说,他们将于2018年3月对来自未在有效OAuth重定向URI中列出的URI的呼叫进行无效处理,我认为他们要求我们为重定向URI启用严格模式。可以找到关于此的链接 我已经在禁用严格模式的情况下使用他们的PHP SDK一年了,现在没有任何问题。但是,当我启用严格模式并将重定向url放在那里时,它会返回一个错误,每次我尝试登录Facebook时,如下图所示: Graph returned an error: Can't Load URL: The domain of th

我收到Facebook的通知说,他们将于2018年3月对来自未在有效OAuth重定向URI中列出的URI的呼叫进行无效处理,我认为他们要求我们为重定向URI启用严格模式。可以找到关于此的链接

我已经在禁用严格模式的情况下使用他们的PHP SDK一年了,现在没有任何问题。但是,当我启用严格模式并将重定向url放在那里时,它会返回一个错误,每次我尝试登录Facebook时,如下图所示:

Graph returned an error: Can't Load URL: The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and subdomains of your app to the App Domains field in your app settings.
请注意,我只是使用FB的默认PHPSDK登录代码(),其中包含Login.PHP和FB-callback.PHP链接,并且我没有使用任何自定义OAuth工作流

我注意到生成的重定向URL包含代码状态参数:

site.com/admin/fb-callback_admin.php?code=somecode&state=somestate
我想这就是为什么我会出错的原因,因为它只需要一个重定向URL,没有任何后续参数

鉴于重定向URL的响应通过以下代码进行,您认为如何避免启用严格模式的问题:

$helper = $fb->getRedirectLoginHelper();
$permissions = ['email']; // Optional permissions
$loginUrl = $helper->getLoginUrl('https://nino-dot-dynamic-osprey-93721.appspot.com/admin/fb-callback_admin.php', $permissions);
echo htmlspecialchars($loginUrl);
默认情况下是从FB的PHP SDK生成的?

更改

$accessToken = $helper->getAccessToken()   

我也有同样的问题,在这个帖子中找到了答案,这似乎解决了我的问题:


虽然不知道为什么会这样,但很高兴它真的起作用了。

我也面临着同样的问题,事实上,这来自facebook graph sdk

我从你那里得到这个信息

另外,一个快速而肮脏的改变似乎为我修复了这个错误 正在将“代码”添加到要在中删除的参数列表中 FacebookRedirectLoginHelper

后来facebook自己发布了更新包,似乎解决了这个问题


在回答此问题时,请确保您拥有的是的最新版本,该版本为
5.6.2

错误消息说您试图使用与应用程序设置不匹配的域部分的重定向URI。哇,这就成功了。非常感谢你!如果您使用的是Codeigniter,您可以在函数authenticate下的application/libraries/Facebook.php中找到这行代码。只需更改此项:
$access\u token=$this->helper->getAccessToken()
到这个:
$access\u token=$this->helper->getAccessToken(site\u url(“您的回调url”)谢谢!这对我也有用!我还在FB的PHPSDKGitHub()中提出的一个问题中找到了相同的解决方案。显然,他们正计划对SDK本身进行bug修复,以从回调URL中删除“code”参数。在搜索并尝试修复该问题后,我尝试了您的解决方案,效果良好。但是这个修复看起来并不推荐。因为大多数人都有多台服务器,例如开发、登台和生产。所以他们必须做一些额外的检查来提供正确的回调uri。谢谢
$accessToken = $helper->getAccessToken('http://www.example.com/admin/fb-callback_admin.php');