我正在使用OAuth Dialog for Facebook权限访问用户的电子邮件,生日和其他详细信息但是当我运行此应用程序URL https://apps.facebook.com/projectatestapp/
时(登录Facebook时)我看到此登录到应用程序窗口其中说:
您正在以Nina Sewart身份登录testapp。登录不会将此应用程序的活动添加到Facebook。
登录并取消按钮instead of Permission window with Allow and Don't Allow button
这是我的代码
<html xmlns:fb="https://www.facebook.com/2008/fbml">
<body>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<div id="fb-root"></div>
<script>
FB.init({
appId: '[My app id]',
xfbml: true,
cookie: true,
oauth: true
});
FB.login({
scope: 'email,user_birthday',
});
</script>
<a href="https://www.facebook.com/dialog/oauth/?scope=email,
user_birthday&
client_id=148244388606048&
redirect_uri=https://apps.facebook.com/projectatestapp/test2.html&
response_type=token" target="_top">test</a>
</body>
</html>
请告诉我它有什么不对吗?
答案 0 :(得分:1)
您没有看到它的原因是因为申请流程已经变成了两个步骤。
可以找到文档here。
因此,未调用回调的原因是因为两步过程。我建议将响应附加到被调用的第二页。
我不确定JS SDK是如何工作的,但这是我设法做到的。
古德勒克。
答案 1 :(得分:0)
在调用授权窗口之前,您需要将fb令牌添加到网址以将您的用户标识为fb。
我想尝试这个来获取令牌:FB.getAccessToken();
答案 2 :(得分:0)
我在这里遇到同样的问题。文档说只有这个应用程序的开发人员/测试人员才能获得发布权限,但我可以设法只使用用于创建应用程序的id。其他测试用户(即使是授权开发人员)也无法通过“添加时间线”阶段。
这可能是一个主要的错误。
答案 3 :(得分:0)
我在这个问题上挣扎了好几个小时,而我可爱的同事帮助我解决了这个问题。确保在调用登录后不刷新页面。基本上,不要做类似下面的事情:
FB.login(...);
window.location.refresh();
在FB.login!
的回调中包含刷新代码伙计,我觉得很愚蠢,但有时候你会感到困惑,忘记了回调在代码执行顺序方面是如何运作的。