我刚刚开始This IP can't make requests for that application.使用我的应用程序随机出错.我的服务器的IP地址在我的应用程序设置的白名单中,并且它运行正常,但我随机开始出现此错误.我检查了服务器的IP(即使我已经知道它是静态的),我已经删除了白名单中的所有条目,但似乎都没有.很奇怪,我可以从我家测试完全相同的代码,它的工作原理!可能是问题的原因是什么?即使几分钟前也没有发生这种情况,但现在我的服务器出错了.
谢谢,可以.
更新:我似乎也无法删除白名单.我去了app高级设置,IP再次出现了.我删除了它们并保存了,它说已经保存了但是当我向下滚动时,IP仍然存在.我认为这是Facebook的一个严重错误.但是[当前不可编辑的]列表无论如何都包含我的服务器的IP.
这个问题已经在Stack上被问了几次,但是没有真正的答案.让我试着解释一下我的情况.
我们使用使用Facebook OAuth2登录的应用程序.这个登录过去一直工作到上周,突然间它现在让我们感到麻烦.
申请流程:
第1步:用户在我们的网站上按Facebook登录按钮
第2步:重定向到Facebook登录/授权页面
第3步:在授权应用程序时,回调来到我们的应用程序,带有一个短暂的"代码"参数.
第4步:使用" https://graph.facebook.com/oauth/access_token"URL将此"代码"参数交换为60天的访问令牌.
第4步中的错误:
当我们尝试为访问令牌交换短生活"代码"时,我们从Facebook收到此错误.
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}
Run Code Online (Sandbox Code Playgroud)
观察:
我从论坛得到的东西:
以下是我对所读内容的解释.可能不准确.Facebook有一些奇怪的政策,需要应用程序开发人员维护临时的10分钟代码,直到第一次登录期间获得的60天代码到期为止.因此,我们应该在用户的浏览器上创建一个带有Access令牌的cookie.我甚至能够看到人们修改他们的代码以创建cookie.
什么真的困扰我?
编辑:
平台: Python,Google Appengine.我们不使用任何Facebook SDK,我们对所有登录URL进行直接HTTP调用.调用失败:https://graph.facebook.com/oauth/access_token - 我们在第一次通话发生后的20秒内传递了appId,密码和代码(从facebook获得).
希望这里有足够的信息来证明我们的代码并非完全错误.来自遇到并解决此问题的人的任何提示/指示都是欢迎.如果它是一个Facebook漏洞,Facebook开发者会注意到,我会更高兴.
facebook oauth facebook-authentication facebook-oauth facebook-login
我有一个允许通过Facebook注册的网站(theneeds.com).我们正在运行多个广告系列,例如Facebook本身,我们希望正确跟踪不同广告系列的注册情况.
问题在于Universal Analytics:当用户注册Facebook时,她会触发新会话,从而失去广告系列参考.
两种可能的解决方案是
不幸的是两者都有缺点,所以我想知道是否有最佳实践或更好的解决方案.
来自"Universal Analytics使用指南"
默认情况下,所有引荐都会在Universal Analytics中触发新会话 https://support.google.com/analytics/answer/2795983
以下是发送到Facebook的广告系列示例:
http://www.theneeds.com/?utm_source=facebook&utm_medium=social&utm_campaign=_mycampaign
这就是发生的事情.
笔记:
[1]我以Facebook为例来简化讨论.显然,Twitter,谷歌和任何其他oAuth提供商也是如此.
[2]为了测试,需要确保用户尚未授权Facebook上的网站,以便她实际上在facebook.com上看到页面(这是新用户的常见情况) - 如果用户已经授权后,她立即被重定向回网站,并且推介没有变化,因此可以正确跟踪广告系列.
我测试了上面提到的2种解决方案.
装饰链接也是一种不可行的解决方案,因为用户在决定注册之前可能会查看网站,因此我应该在所有链接上传播装饰.
一个更好的解决方案是暂时禁用注册表单上的引用,但我不确定这是否可以在Universal Analytics中使用.
有什么建议吗?先感谢您!
我有一个难题.困难意味着我搜索了网络和StackOverflow以及整个FBJS SDK文档并且没有找到答案.
我正在构建一个Page Tab应用程序,我想让粉丝们参加rsvp活动.所以我必须检查用户是否已登录,如果不是,我必须登录.这听起来很简单,但FB.getLoginStatus不会触发回调函数.这是代码摘录:
FB.init({
appId: window.appID,
status: true,
xfbml: true,
cookie: true,
oauth: true,
channelUrl: 'http://example.com/fb/channel.html'
});
Run Code Online (Sandbox Code Playgroud)
然后我只是 - 当然在用户点击一个按钮后 - 调用FB.getLoginStatus,但它似乎没有做任何事情.
我已经检查了沙盒模式,FB.init成功,应用程序设置中的URL和开发环境.我可以调用FB.ui,尽管FB.ui的方法是:'oauth'我收到一条错误消息,说""redirect_uri"参数不能与"next"参数一起使用,这个参数已被弃用." 这很奇怪,因为我没有使用"next"参数.但是当我在undefined旁边设置时,它工作正常,我得到了窗口,但它说"应用程序配置不允许给定URL.".期待,我可以登录,然后我有access_token.但是在新窗口中,getLoginStatus仍然没有做任何事情.
所以欢迎任何建议.
谢谢,塔马斯
更新:
function onBodyLoad() { //on body onload
FB.init({
appId: window.appID,
status: true,
xfbml: true,
cookie: true,
oauth: true,
channelUrl: 'http://example.com/fb/channel.html'
});
}
...
function getName() { // on button onclick
FB.getLoginStatus(function(response){
if (response.authResponse)
{
window.loggedIn = true;
debugString('Logged in');
} else
{
window.loggedIn=false;
debugString('Not logged in');
}
}, true);
if (window.loggedIn === …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,为了能够切换到另一个用户,我使用"https://www.facebook.com/dialog/oauth"URL 的"auth_type = reauthenticate"参数.这工作了很长时间.我能够使用其他FB用户登录,而不是上次登录.(例如共享PC)今天我发现不再可能改变用户.只需重新输入密码.此外,没有"取消"按钮(使用"dispalay = popup").
我在developers.facebook.com上找不到任何关于它的东西
有人知道吗?是临时错误还是其他什么?
当从服务器(例如Twitter和Facebook)处理OAuth时,您很可能会将用户重定向到要求获得应用程序权限的URL.通常,在单击链接后,您通过AJAX将请求发送到服务器,然后返回授权URL.
但是当你window.open在收到答案时尝试使用时,你的浏览器会阻止弹出窗口,使其无效.当然,您可以将用户重定向到新的URL,但这会破坏用户体验,而且令人讨厌.您不能使用IFRAMES,但不允许使用IFRAMES(因为您无法看到位置栏).
那怎么办呢?
我已经设法在我的PHP web应用程序中使用Facebook系统编程登录.但现在我有点陷入最佳实践.
我是否必须将用户的userID保存到我的数据库,用户的电子邮件地址和/或姓名?我问这个是因为我正在考虑用户改变他们的电子邮件地址,如果是这样的话,他们下次无法登录.
我怎么知道当用户使用Facebook登录时,以及下次使用Twitter时,它是同一个用户?可能基于他的电子邮件地址?但我想如果你没有改变它,你的标准Facebook电子邮件是your.name@facebook.com,对吧?
我不是在这里要求代码,请提供一些经验或最佳实践.
提前致谢!
Stijn Hoste
我正在尝试将Facebook登录系统实施到我的网站中.
当它尝试连接到Facebook时,我从控制台日志中收到错误:
Unsafe JavaScript attempt to access frame with URL https://s-static.ak.fbcdn.net/connect/xd_proxy.php?xxxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
我正在使用JavaScript SDK
我在body标签中添加了这个:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxxx',
status : true,
cookie : true,
xfbml : true
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
Run Code Online (Sandbox Code Playgroud)
Facebook登录按钮:
<div class="fb-login-button" data-perms="email">Login with Facebook</div>
Run Code Online (Sandbox Code Playgroud)
我从本地主机测试-我有我的注册在Facebook网站开发的应用程序(网站网址:http://localhost)
如何解决这个问题?或者我应该使用PHP SDK?
编辑:当我上传到具有公共域的服务器时出现同样的问题.
我正在使用这样的FB交换令牌api:
https://graph.facebook.com/oauth/access_token?client_id={client_id}8&client_secret={client_secret}}&grant_type=fb_exchange_token&fb_exchange_token={one_hour_token}&redirect_uri=http%3A%2F%2Fotagz.cloudfoundry.com%2FfacebookCallback
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
"message":"缺少redirect_uri参数.",键入":"OAuthException","code":191
我有我的申请网址:otagz.cloudfoundry.com
我知道有关于这个问题的另一个问题,但没有解决方案,而且是从2010年开始.
有人知道redirect_uri有什么问题吗?
谢谢,克里斯蒂安
隐含流动被认为是不安全的.我知道两个问题:
它看起来并不太糟糕.是否还有其他我不知道的安全漏洞?
facebook-oauth ×10
facebook ×5
oauth ×4
oauth-2.0 ×2
php ×2
ajax ×1
google-oauth ×1
javascript ×1
oauth2 ×1
popup ×1
redirect ×1
window.open ×1