Sán*_*más 12 facebook oauth facebook-graph-api facebook-oauth
我有一个难题.困难意味着我搜索了网络和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 === undefined) {
debugString('getLoginStatus did not exec'); // I always get this message
}
Run Code Online (Sandbox Code Playgroud)
}
更新2:我在不同的URL上创建了一个新的应用程序,该URL被配置为独立的网站.这些代码完美无缺,我可以获取登录状态,我可以登录等等.在FB的上下文中,在独立网站中使用FB JavaScript SDK有什么区别吗?
Jef*_*eff 23
FB.getLoginStatus当您在与注册应用程序的域不同的域上运行网站时,不会触发回调.当我在本地或登台服务器上进行开发时,我经常发现自己处于这种情况.
例如,如果您使用example.com注册该站点,并且您的登台服务器是example.mystagingserver.com,则回调不会触发.在这种情况下,您需要在Facebook中创建第二个应用程序,并为新应用程序使用应用程序ID和密钥.
| 归档时间: |
|
| 查看次数: |
17795 次 |
| 最近记录: |