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

问题描述 投票:9回答:2

我收到了来自Facebook的通知,说他们将使来自2018年3月的有效OAuth重定向URI中未列出的URI的调用无效,我认为他们要求我们为重定向URI启用严格模式。有关这方面的链接可以找到here

我一直在使用他们的PHP SDK禁用严格模式一年没有任何问题但是当我启用严格模式并在那里放置重定向网址:https://nino-dot-dynamic-osprey-93721.appspot.com/admin/fb-callback_admin.php - 每次我尝试登录时返回错误,如下所示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的默认PHP SDK登录代码(https://developers.facebook.com/docs/php/howto/example_facebook_login),它具有login.php和fb-callback.php链接,而且我没有使用任何自定义OAuth工作流程。

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

site.com/admin/fb-callback_admin.php?code=somecode&state=somestate

我认为这就是我收到错误的原因,因为它只需要https://nino-dot-dynamic-osprey-93721.appspot.com/admin/fb-callback_admin.php的重定向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默认生成的?

facebook facebook-php-sdk facebook-login
2个回答
26
投票

更改

$accessToken = $helper->getAccessToken()   

$accessToken = $helper->getAccessToken('http://www.example.com/admin/fb-callback_admin.php');

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

Graph returned an error: Can't Load URL: The domain of this URL isn't included in the app's domains

不知道为什么会这样,但是很高兴。


4
投票

我遇到了同样的问题,实际上,这来自facebook图表sdk。

我从here那里得到了这些信息

此外,似乎为我修复此错误的快速而肮脏的更改是在FacebookRedirectLoginHelper中删除要删除的参数列表中的“代码”

后来facebook本身发布了更新的包,这似乎解决了这个问题。

确保你在这个答案的时候有最新版本的facebook-graph-sdk,版本是5.6.2

© www.soinside.com 2019 - 2024. All rights reserved.