【问题标题】:Redirecting to authentication dialog - "An error occurred. Please try again later"重定向到身份验证对话框 - “发生错误。请稍后再试”
【发布时间】:2011-11-06 02:41:37
【问题描述】:

为什么它总是发生在我身上?

这发生在我的应用程序验证用户用户登录并将用户重定向到身份验证页面之后:

https://www.facebook.com/dialog/oauth?client_id=XXX&redirect_uri=http%3A%2F%2Fexample.com%2Fmyappname%2F&state=YYYYYY&scope=offline_access%2Cpublish_actions

但是 Facebook 没有显示授权页面,而是显示了一个错误页面,带有

发生错误。请稍后再试。

在尝试对我的用户进行身份验证之前我必须做任何配置吗?

使用 PHP-SDK 类通过 PHP 完成所有工作。

【问题讨论】:

标签: php facebook facebook-graph-api


【解决方案1】:

我和你有同样的问题。

在 Facebook 开发者应用页面中,确保沙盒模式已禁用。

【讨论】:

  • 发生在我身上的是,facebook 更改此设置,恕不另行通知。我的应用停止运行,当我尝试禁用沙盒模式时,它说我需要放置应用隐私政策的链接。
  • 如果启用沙盒模式,它只对开发人员和管理员用户可见,一旦禁用,它会显示此应用已上线(所有用户可见)的消息
  • 目前(2015-08-28),Facebook 将公共开关更改为管理面板中的“状态和评论”选项卡。终于找到了。
【解决方案2】:

更改网站域后,我遇到了同样的问题。尽管我正确更改了 request_uri 参数并使用新域更新了我的应用程序设置,但错误仍然出现。 然后我意识到我的Facebook APP的ID和SECRET ID已经自动更改了,没有任何警告!整个过程使用新 ID 重新开始工作。

【讨论】:

  • 绝对! APP_ID 和 API_KEY 以前是不一样的,现在完全一样了!谢谢!
【解决方案3】:

这也发生在我身上,但所有的 api 密钥、秘密和东西都是正确的。我发现我的应用程序在沙盒模式下运行。在https://developers.facebook.com/ 中转到您的应用设置,单击高级设置选项卡并检查您的应用是否处于沙盒模式。如果是禁用它,然后再试一次。让我们知道它是否有效。

【讨论】:

  • 我很晚才读到这篇文章(在 8 小时后与 channelURL 和域名混在一起) - 本来可以节省我这些时间
【解决方案4】:

我收到此错误是因为我从 http://mysite.com 开始,但在我的 Facebook 设置中指定了 http://WWW.mysite.com - www 很重要...我最终通过使用 .httpaccess 来解决总是杀死“www”,并将FB指向http://mysite.com

最差。子域。曾经。 :u)

【讨论】:

  • 更新。刚刚看到 facebook 设置有 app domain 参数,你可以在其中指定 www。还有
【解决方案5】:

在使用 Dialogues 时,Facebook 提供了一个“show_error”属性,该属性默认为 no,但在开发环境中可以设置为 true,这对于调试目的非常有用。

show_error - 如果设置为 true,则在发生错误时将显示错误代码和错误描述。

它的使用说明可以在Facebook Docs中找到。

我一直在调试“发生错误。请稍后再试。”在我在文档中找到这个属性之前的对话。一旦我开始使用它,我也可以看到以下消息:

API 错误代码:191

API 错误说明:指定的 URL 不属于应用程序

错误消息:redirect_uri 不属于应用程序。

【讨论】:

    【解决方案6】:

    我遇到了同样的问题;原来 FB 需要 string appID 而不是 int...

    //DOESNT WORK:
    $facebook = new Facebook(array(
      'appId'  => 147XXXXXXXXXXX,
      'secret' => 'XXXXXXXXXXXXXX',
    ));
    
    // WORKS:
    $facebook = new Facebook(array(
      'appId'  => '147XXXXXXXXXXX',
      'secret' => 'XXXXXXXXXXXXXX',
    ));
    

    【讨论】:

      【解决方案7】:

      对我来说,这是因为我创建的“测试用户”是一个单独应用程序的一部分。我为这个应用程序创建了一个测试用户,它开始正常工作。

      我知道我很愚蠢,但这可以为别人省去一些麻烦。

      【讨论】:

        【解决方案8】:

        确保您的应用已配置为使用您网站的相应 URL 和域。可能就是这样。

        【讨论】:

        • 问题出现在 Facebook 内部,它甚至没有请求用户允许运行该应用程序。如果我尝试通过浏览器直接访问我的网站 URL,则可以访问它。
        • 我相信您的网址是准确的。我在说的是您的 Facebook 应用程序的设置。转到developers.facebook.com 并单击应用程序,然后从左侧边栏中选择您的应用程序。您应该会看到您尝试允许访问的站点的“站点 URL”设置。单击“编辑设置”并确保您已正确配置所有设置,以便每个组旁边都有绿色检查。
        【解决方案9】:

        根据 OAUTH Dialog 文档:

        *redirect_uri: 用户单击对话框中的按钮后重定向到的 URL。您指定的 URL 必须是与您的应用设置中指定的具有相同基本域的 URL,格式为 https://apps.facebook.com/YOUR_APP_NAMESPACE 的 Canvas URL ...*

        我正在动态构建 oauth 链接,以便在需要时向用户请求额外权限,我意识到,即使您重定向到 https://apps.facebook.com/YOUR_APP_NAMESPACE,您也必须在应用程序管理中设置应用程序域和网站设置。我将域设置为 facebook.com,将网站设置为 facebooks 根 url。

        现在我的 oauth 对话框链接可以正常工作 - 即使在沙盒模式下也是如此。

        【讨论】:

        • 你是对的,所以这意味着我们不能在 Facebook 页面和拥有的网站上使用同一个应用程序,坏事
        【解决方案10】:

        我在一个 Page Tab 应用程序上遇到了这个确切的问题,我一生都无法弄清楚问题是什么。它在我的测试页面上工作,但一旦我让它生效,它就不起作用了。最后我发现我通过将页面选项卡的实际 URL(即http://www.facebook.com/<"page_name">/app_<"app_id">)放入“网站”下的“站点 URL”来解决问题。这没有任何意义。但它有效:-)

        【讨论】:

        • 你是怎么做到的?当我尝试保存它时,在域名字段上出现错误... mobileborg.com 必须来自您的站点 URL 或您的移动 Web URL。
        • 清除应用程序域后它保存并工作! ...但我想知道如果不填写 App 域字段会破坏某些东西...
        【解决方案11】:

        我的解决方案是将选项“经过身份验证的推荐”设置为启用。之后就真的修好了。

        【讨论】:

          【解决方案12】:

          在我更新 'appID' 和 'secret' 然后将更改推送回 heroku(即 - 'git push heroku master')后问题解决了

          关键是不要忘记将更改推送回heroku master。如果您习惯在 localhost 上进行测试,很容易被忽略。

          希望这会有所帮助。

          【讨论】:

            【解决方案13】:

            对我来说,问题是我用来测试应用程序的 Facebook 用户没有得到 Facebook 确认的电子邮件地址。

            我的客户在 Facebook 上设置了 2 个虚假帐户,并告诉我它们无法正常工作。但他忘记确认这些帐户的电子邮件地址(Facebook 发送的电子邮件进入了他的垃圾邮件文件夹,他没有注意到)。

            我花了几个小时才找到这个,所以我希望它对某人有所帮助。

            干杯!

            【讨论】:

              【解决方案14】:

              还有一个错误重定向链接的问题:我有一个以“https://apps.facebook.com?myapplication”开头的链接....但授权后重定向会将我带到“apps.facebook.com” /Myapplication”,因此我会收到上述消息:“发生错误。稍后再试。”因为“apps.facebook.com”...表示“http://apps.facebook.com/Myapp”而不是“HTTPS://apps.facebook.com/,...”

              解决方案:转到我在 facebook 开发人员部分的应用程序设置。单击“编辑”。在左侧菜单中选择“权限”(默认情况下,菜单设置为基本)并在新打开的设置中将我的“Auth Token Parameter”从“Query string”更改为“URL Fragment”。

              成功了!授权完成后,用户将被带到“https://apps.facebook.com/myapp...”

              【讨论】:

                【解决方案15】:

                另一个可能的错误是,如果您直接从 Facebook SDK 示例中复制代码,那么尽管一切都正确,但您可能会遇到相同的错误。 http://developers.facebook.com/docs/reference/php/

                这是因为在他们的示例中,他们使用反引号而不是单引号作为数组的键。正确的代码如下。

                require_once("facebook.php");
                
                $config = array();
                $config['appId'] = 'YOUR_APP_ID';
                $config['secret'] = 'YOUR_APP_SECRET';
                $config['fileUpload'] = false; // optional
                
                $facebook = new Facebook($config);
                

                【讨论】:

                  【解决方案16】:

                  如果您的所有代码都正常运行,那么要消除此类错误,请转到 Facebook 开发者应用并禁用 沙盒模式

                  【讨论】:

                    【解决方案17】:

                    我自己也遇到了这个问题。我正在内部开发一个应用程序,所以我的主机是'localhost'。如何在应用程序配置中设置“localhost”并不明显。如果您想在本地开发,请按照以下步骤设置您的应用:

                    1. 转到您管理 Facebook 应用程序的位置。具体来说,您希望进入“设置”菜单下的“基本”。
                    2. 将“localhost”添加到“应用程序域”。
                    3. 在“选择您的应用如何与 Facebook 集成”下,选择“网站”,然后输入“http://localhost/”。

                    保存并等待几分钟让信息传播,尽管它对我来说马上就起作用了。

                    【讨论】:

                      【解决方案18】:

                      我已对应用程序施加了限制,即只有美国居民才能使用该应用程序。出现此错误消息时,我正在加拿大工作。解除限制后一切正常。

                      【讨论】:

                        【解决方案19】:

                        遇到类似问题,是的,我的沙盒已启用。我禁用了它,瞧,登录问题就消失了。我必须警告说,这个问题不会影响开发人员和网站管理员,因为 Facebook 允许这些用户查看该应用程序。因此,我什至不敢相信用户抱怨无法登录,因为我可以毫无问题地登录。

                        【讨论】:

                          【解决方案20】:

                          我有同样的问题,并通过将参数 &display=touch 添加到 url 来解决它

                          试试吧,可能会有帮助

                          【讨论】:

                            【解决方案21】:

                            2015 年的答案

                            沙盒模式已消失。

                            转到My Apps -> Your App -> Status & Review 并将滑块更改为是:

                            您想让这个应用程序及其所有实时功能向公众开放吗?

                            【讨论】:

                              【解决方案22】:

                              如果您是应用开发者,您可能会看到更具体的错误消息,但通常该消息表示以下两种情况之一:

                              1. 您的服务器返回了 HTTP 错误代码(通常为 5xx)
                              2. 您尝试在用户登录后将其发送到您的应用配置不允许的 URL(尽管作为应用的管理员,在这种情况下您应该会看到更具体的错误消息和 Facebook 错误代码)

                              【讨论】:

                              • 看,我从服务器上删除了我的所有项目文件,并在this 教程(Authorization 部分)之后创建了一个新文件,但是一旦我切换到测试用户并尝试加载应用程序并重定向我,this 是我看到的。
                              【解决方案23】:

                              我遇到此错误是因为我使用redirect_url 作为参数而不是redirect_uri

                              Server-Side Authentication 文档页面说使用redirect_url

                              https://www.facebook.com/dialog/oauth?
                                  client_id=YOUR_APP_ID
                                 &redirect_url=YOUR_REDIRECT_URI
                                 &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
                                 &state=SOME_ARBITRARY_BUT_UNIQUE_STRING
                              

                              但这是不正确的。 OAuth Dialog 文档说要改用 redirect_uri,这很有效,所以我假设您只能使用一个而不能使用另一个:

                              https://www.facebook.com/dialog/oauth/?
                                  client_id=YOUR_APP_ID
                                  &redirect_uri=YOUR_REDIRECT_URL
                                  &state=YOUR_STATE_VALUE
                                  &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
                              

                              【讨论】:

                              • @pal4life 从这个问题的不同答案的数量来看,似乎错误信息可能是由各种不同的问题引起的,所以也许其他答案之一会解决你的具体实例这个问题。
                              • 是的@Cold Hawaiian 看到这一点真是令人沮丧,以至于一个问题可能有很多原因发生。只是建议需要对事情进行更多澄清,并且还需要从社区方面做更多的工作。
                              【解决方案24】:

                              我已经尝试了这里提到的所有答案。但它没有用。我不得不删除并重新创建。我猜这是由于新的“经过身份验证的推荐”。如果您添加了未经批准的 Open Graph 对象,则可能会出现错误。

                              【讨论】:

                                【解决方案25】:

                                我有同样的问题,根本原因不同:

                                我以不同应用程序的测试用户身份登录。因此,我无法授权不是为其创建测试用户的应用。

                                当我注销并以普通用户或测试用户身份登录我尝试授权的应用时,一切正常。

                                【讨论】:

                                  【解决方案26】:

                                  就我而言,与应用程序一起使用的帐户存在年龄问题。

                                  如果 FB 应用包含酒精内容,则 21 岁以下的 FB 用户在尝试对其进行授权时会抛出错误。

                                  【讨论】:

                                    【解决方案27】:

                                    您需要在 REDIRECT URI 中指定 http://

                                    【讨论】:

                                      【解决方案28】:

                                      对我来说,问题是应用程序的 url 与我运行它的 url 不完全匹配(即不同的目录,相同的域)

                                      【讨论】:

                                        【解决方案29】:

                                        无法解决此类错误。因此,最好使用您的自定义对话框,就像在 facebook 中显示的一样,并在不登录的情况下一次又一次地发布消息。即使您从 facebook 中删除了您的应用,您也可以要求登录并成功发布消息。

                                        【讨论】:

                                          【解决方案30】:

                                          在我的情况下,原因完全不同。我试图在页面加载后自动打开一个 Feed 对话框。 10 次中有 9 次显示此错误。首先,我按照@Peter Roome 的建议添加了show_error: true 参数,但它没有帮助,显示104: Invalid signature,根本不是描述性的。

                                          然后我找到了原因。代码在$(document).ready jQuery 函数中。似乎在要执行代码的时候还没有加载一些 facebook 的东西。我把代码移到$(window).load块(所有页面内容加载完毕后执行),问题解决了。

                                          【讨论】:

                                            猜你喜欢
                                            • 1970-01-01
                                            • 2023-03-31
                                            • 2011-09-15
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 2022-11-27
                                            • 1970-01-01
                                            相关资源
                                            最近更新 更多