facebook - FB.getLoginStatus 不触发回调函数

标签 facebook facebook-graph-api oauth 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'
 }); 

然后我简单地 - 当然是在用户点击按钮之后 - 调用 FB.getLoginStatus,但它似乎什么也没做。

我已经检查了沙盒模式、FB.init 成功、应用程序设置中的 URL 和开发环境。我可以调用 FB.ui,尽管 FB.ui 的方法是:'oauth' 我收到一条错误消息,指出““redirect_uri”参数不能与“next”参数结合使用,该参数已弃用。”。这很奇怪,因为我没有使用“下一个”参数。但是当我将旁边设置为未定义时,它工作正常,我得到了窗口,但它说“应用程序配置不允许给定的 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
  }

更新 2:我在不同的 URL 上创建了一个新的应用程序,它被配置为一个独立的网站。这些代码完美地工作,我可以获取登录状态,我可以登录等等。在 FB 上下文中工作和在独立网站中使用 FB JavaScript SDK 有什么不同吗?

最佳答案

FB.getLoginStatus 当您在与您注册应用程序的域不同的域上运行网站时,不会触发回调。当我在本地或在临时服务器上进行开发时,我通常会遇到这种情况。

例如,如果您使用 example.com 注册了网站,而您的暂存服务器是 example.mystagingserver.com,则不会触发回调。在这种情况下,您需要在 Facebook 中创建第二个应用程序,并为新应用程序使用应用程序 ID 和 key 。

关于facebook - FB.getLoginStatus 不触发回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522947/

相关文章:

php - 如何检查用户/应用程序是否可以在目标组墙上发帖?

php - Fb Ads api 如何获得仅活跃的 FB 事件?

java - 使用 Java 和 Scribe 的 Vimeo 搜索 API

facebook - 存储用户的 Facebook 访问 token

facebook - Facebook Open Graph 图片的最小宽度和高度是多少?

php - 在 facebook 自定义提要中操作照片 url(图形 API)

iphone - 如何访问显示发布到墙上的应用程序名称的链接?

c# - 无需用户交互即可连接到 Oauth [QuickBooks]

android - Facebook 喜欢按钮在 android 中打开空白页面

iphone - iOS 发布到 Facebook 应用墙