我收到来自 Facebook 的通知,说他们将在即将到来的 2018 年 3 月 使来自未在有效 OAuth 重定向 URI 中列出的 URI 的调用无效,我认为他们要求我们启用严格模式 用于重定向 URI。关于这个的链接可以找到here .
我一直在禁用严格模式的情况下使用他们的 PHP SDK 一年,没有任何问题,但是当我启用严格模式并将重定向 url 放在那里时: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 包含code 和state 参数:
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生成的吗?
最佳答案
改变
$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
虽然不确定为什么会这样,但很高兴它做到了。
关于facebook - 使用启用了严格模式的 Facebook PHP SDK 登录时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47898499/