尝试使用Facebook API时出现错误消息

时间:2016-07-21 04:18:37

标签: facebook api oauth

尝试使用Facebook API时收到错误消息。

当我启用了客户端OAuth登录时,启用了Web OAuth登录并将有效的Oauth重定向URI设置为http://localhost:8000/,当我尝试使用正确的应用ID登录Facebook时出现错误:

网址已阻止:此重定向失败,因为重定向URI未在应用的客户端OAuth设置中列入白名单。确保启用了客户端和Web OAuth登录,并将所有应用程序域添加为有效的OAuth重定向URI。

我是否需要在代码中添加特定设置或事物才能使其正常工作?

这是我得到的代码:

    $(window).load(function() {
        if (window.cordova.platformId == "browser") {
            facebookConnectPlugin.browserInit(MYAPPIDHERE);
        }
    });

而且:

            facebookConnectPlugin.login(["user_likes"],
                    function(response) {
                        likes();
                    },
                    function(response) {
                        likes();
                    });
        }

编辑:

添加了Facebook App中的内容以及我导航的网址的图片。

enter image description here

enter image description here

4 个答案:

答案 0 :(得分:1)

您可能希望检查facebookConnectPlugin发出的HTTP调用,并查看查询字符串中的redirect_uri是否与您在Facebook App设置中的https://www.facebook.com/dialog/oauth?client_id={FB_APP_ID}&redirect_uri=http://localhost:8000/ 匹配为有效的重定向URI。 它可能看起来像这样:

redirect_url

修改

facebookConnectPlugin使用的http://static.ak.fbcdn.net/connect/xd_proxy.php#cb=f11b73fd18e512c# = phonegap/plugin/facebookConnectPlugin/fbsdk.js似乎存在问题。我检查了javascript code,它正在使用redirect_url,这似乎是罪魁祸首。

当我使用FB SDK的直接加载时,它使用不同的http://staticxx.facebook.com/connect/xd_arbiter/r/RYqXvcNXPI-.js?version=42 = <script> (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> 。用这个替换以前的redirect_url解决了我的问题。 phonegap的fbsdk.js可能使用过时的脚本。

底线:最好直接加载FB SDK,如上所述here。根据{{​​3}},它看起来像这样:

//connect.facebook.net/en_US/sdk.js

最后,要启用调试日志,请将//connect.facebook.net/en_US/sdk/debug.js替换为console.log

答案 1 :(得分:0)

Javascript API无法在PhoneGap上进行登录。 请改用此cordova插件。

https://github.com/Wizcorp/phonegap-facebook-plugin

答案 2 :(得分:0)

Facebook无法重定向到本地网址。 happen将用户重定向到Facebook,他们登录,Facebook会对此进行验证并将其发回给您。 Facebook将它们发送到您提供的URL。网址http://localhost:8000是以下的简写:连接到自己的计算机上的端口8000。在Facebook进行重定向的时候,localhost引用了Facebook,而不是你了。显然,Facebook已将这些内容列入黑名单 - 可能出于安全原因。

您需要的是Facebook可以重定向到的公共网址。也许this有帮助?

答案 3 :(得分:0)

试试这些:

  1. 将URI设置为http://localhost/(无端口)
  2. 使用相应的回调函数在redirectURI上进行回调。即,http://localhost/loginCallback
  3. 报告任何错误,我感觉第一种方式会起作用。