尝试使用Facebook API时出现错误消息
我在尝试使用Facebook API时收到一条错误消息 当我启用客户端OAuth登录、启用Web OAuth登录并将有效的OAuth重定向URI设置为我在尝试使用正确的应用程序ID登录Facebook时遇到的错误是:尝试使用Facebook API时出现错误消息,facebook,api,oauth,Facebook,Api,Oauth,我在尝试使用Facebook API时收到一条错误消息 当我启用客户端OAuth登录、启用Web OAuth登录并将有效的OAuth重定向URI设置为我在尝试使用正确的应用程序ID登录Facebook时遇到的错误是: URL已阻止:此重定向失败,因为重定向URI未在应用程序的客户端OAuth设置中列出。确保客户端和Web OAuth登录处于打开状态,并将所有应用程序域添加为有效的OAuth重定向URI 是否有一个特定的设置或东西,我必须在代码中输入,以使其正常工作 这是我得到的代码: $
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。也许会有帮助?试试这些方法:
如果有任何错误,请返回报告,我感觉第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取代,这就是答案。非常感谢你,胡里奥!我很难过我不能给你奖金,因为它过期了:(