Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 API时出现错误消息_Facebook_Api_Oauth - Fatal编程技术网

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

尝试使用Facebook API时出现错误消息,facebook,api,oauth,Facebook,Api,Oauth,我在尝试使用Facebook API时收到一条错误消息 当我启用客户端OAuth登录、启用Web OAuth登录并将有效的OAuth重定向URI设置为我在尝试使用正确的应用程序ID登录Facebook时遇到的错误是: URL已阻止:此重定向失败,因为重定向URI未在应用程序的客户端OAuth设置中列出。确保客户端和Web OAuth登录处于打开状态,并将所有应用程序域添加为有效的OAuth重定向URI 是否有一个特定的设置或东西,我必须在代码中输入,以使其正常工作 这是我得到的代码: $

我在尝试使用Facebook API时收到一条错误消息

当我启用客户端OAuth登录、启用Web OAuth登录并将有效的OAuth重定向URI设置为我在尝试使用正确的应用程序ID登录Facebook时遇到的错误是:


URL已阻止:此重定向失败,因为重定向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应用程序中的图片,以及我导航的URL


Javascript API无法在PhoneGap上登录。 改用这个cordova插件


Facebook不可能重定向到本地URL。你将用户重定向到Facebook,他们登录,Facebook验证并将其发送回你。Facebook会将它们发送到您提供的URL。URL
http://localhost:8000
是连接到您自己的机器上的端口8000的缩写。在Facebook进行重定向时,
localhost
引用的是Facebook,而不是你。显然,Facebook已经将这些东西列入黑名单——可能是出于安全原因

你需要的是一个Facebook可以重定向到的公共URL。也许会有帮助?

试试这些方法:

  • 将URI设置为(无端口)
  • 使用相应的回调函数在重定向URI处放置回调。i、 e

  • 如果有任何错误,请返回报告,我感觉第1种方法会起作用。

    您可能需要检查由
    facebookConnectPlugin
    进行的HTTP调用,并查看查询字符串中的
    redirect\u uri
    是否与您在Facebook应用程序设置中的有效重定向uri匹配。 它可能看起来像这样:

    https://www.facebook.com/dialog/oauth?client_id={FB_APP_ID}&redirect_uri=http://localhost:8000/
    
    <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\u url似乎有问题http://static.ak.fbcdn.net/connect/xd_proxy.php#cb=f11b73fd18e512c#
    由facebookConnectPlugin使用。我检查了,它正在使用
    phonegap/plugin/facebookConnectPlugin/fbsdk.js
    ,这似乎是罪魁祸首

    当我使用FB SDK的直接加载时,它使用了不同的
    重定向\u url
    =
    http://staticxx.facebook.com/connect/xd_arbiter/r/RYqXvcNXPI-.js?version=42
    。用这个替换以前的重定向url为我解决了这个问题。phonegap的fbsdk.js可能使用了过时的脚本

    底线:如前所述,最好直接加载FBSDK。根据这个理论,它看起来是这样的:

    https://www.facebook.com/dialog/oauth?client_id={FB_APP_ID}&redirect_uri=http://localhost:8000/
    
    <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>
    
    
    (功能(d、s、id){
    var js,fjs=d.getElementsByTagName[0];
    if(d.getElementById(id))返回;
    js=d.createElement;js.id=id;
    js.src=“//connect.facebook.net/en_US/sdk.js”;
    fjs.parentNode.insertBefore(js,fjs);
    }(文档“脚本”、“facebook jssdk”);
    

    最后,要启用调试日志,请将
    //connect.facebook.net/en_-US/sdk.js
    替换为
    //connect.facebook.net/en_-US/sdk/debug.js

    您需要按照消息所述执行操作……在应用程序仪表板的设置中输入正确的信息。(提示:这些设置的位置已更改,它们现在位于产品->Facebook登录下。如果后者未显示,则必须先添加。)但信息仍然存在。我在该部分添加了一张相关屏幕的图片。
    http://localhost:8000/
    可能不是登录对话框调用中使用的
    redirect\u uri
    参数的完整值。在本例中是这样。这一切都在一个单页PhoneGap应用程序中,并且都是从我使用这个插件时启动的。看起来这个链接表明localhost应该可以工作。你认为这可能是最近的变化吗?我个人认为localhost不起作用,但我后来发现了这个链接问题,并添加了它,以防我错了。您是否可以尝试重定向到example.com(whitelisting This),看看是否有效?URL阻止:此重定向失败,因为重定向URI未在应用程序的客户端OAuth设置中列出。确保客户端和Web OAuth登录处于打开状态,并将所有应用程序域添加为有效的OAuth重定向URI。第一种方法不起作用,第二种方法也不起作用。它看起来是这样的:{FB_APP_ID}&APP_ID={FB_APP_ID}&client_ID={FB_APP_ID}&display=popup&domain=localhost&origin=1&redirect\u uri=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd\u proxy.php%23cb%3Df11b73fd18e512c%26origin%3Dhttp%253A%252F%252Flocalhost%253A8000%252Ffb572a6b00d4b%26关系%3opener%26传输%3Dpostmessage%26frame%3df2da35ea99ccc&响应类型=令牌%2Csigned\u请求范围=用户喜欢&sdk=joey能够从该链接复制您的问题。问题似乎是使用了
    static.ak.fbcdn.net/connect/xd_proxy.php
    。当我用
    http://staticxx.facebook.com/connect/xd_arbiter/r/RYqXvcNXPI-.js?version=42
    ,对我来说很好用。我是通过使用FB sdk的直接脚本嵌入得到的。请允许我编辑我的帖子,了解更多详细信息。这只是SDK的更新还是什么?一些链接,比如和,说xd_proxy.php已经被xd_arbiter.Yep取代,这就是答案。非常感谢你,胡里奥!我很难过我不能给你奖金,因为它过期了:(