Facebook getLoginStatus() 函数和 phonegap 不更新状态

标签 facebook cordova facebook-javascript-sdk phonegap-plugins

我目前正在使用 phonegap 在 Android 上开发一个应用程序,并且想在该应用程序中使用 Facebook。我在 Facebook 上创建了一个名为“测试”的应用程序。当我没有登录到“测试”但我登录到 Facebook(Android 设备上的 Facebook 应用程序)并运行 getLoginStatus() 函数时,我得到的响应是 unknown 而不是 not_authorized。因此,我的第一个问题是这是有意的吗?我是想得到 unknown 的响应,还是 phonegap 的错误,我想得到 not_authorized 的响应。

第二个问题是,当我登录到名为“测试”的 Facebook 应用程序时,一切都按预期运行(Facebook 用户注册“测试”)。当我调用 getLoginStatus() 函数时,它工作得很好,并说我连接没有问题。

但是

如果我进入 Facebook 并从我的 FB 帐户中删除应用程序“test”,然后再次运行 android 应用程序并运行 getLoginStatus() 函数,仍然会说我已将应用程序“test”注册到我的 Facebook 帐户,但是不是这样的!!请注意,我在代码中确保每次都调用服务器,而不是使用 JS SDK 的缓存结果。现在我的第二个问题是。这是注定要发生的吗?或者,如果不是,是 Facebook 还是 Phonegap 问题(Phonegap 要么不断获取缓存的响应,要么 Facebook 更新速度不够快?)

代码如下:

function getLoginStatus() 
      {
          FB.getLoginStatus(function(response) 
          {
            alert(JSON.stringify(response));
            alert(response.status);
            if (response.status == 'connected') 
            {
              alert('logged in');
                FB.api('/me',function (response) {
                    if (response.error)
                    {
                        alert('There is an error');
                    }
                    else
                    {
                        alert(response.name);
                    } 
                });


            }
            else 
            {
              alert('not logged in');
            }
           },true);
      }

任何回复都将不胜感激!!

最佳答案

当我没有登录到“测试”但我登录到 Facebook(Android 设备上的 Facebook 应用程序)并运行 getLoginStatus() 函数时,我收到未知而不是 not_authorized 的响应。

not_authorized:当用户登录到 facebook 但未授权您的应用程序时,您将获得 not_authorized。如果你把那个人转到facebook主页,他输入用户名和密码并取消授权,之后你就没有授权了。如果这个人登录了 facebook,而你的应用还没有把他转移到 fb 上授权,你仍然没有授权

https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

未知:如果用户未登录 facebook,您将获得未知状态。

如此登录,未授权:not_authorized 未登录:未知

如果我进入 Facebook 并从我的 FB 帐户中删除应用“测试”

我猜这些更改需要一段时间才能传播开来。如果用户在当前上下文中授权了该应用程序,它将在一段时间内保持授权(或直到他注销)。我个人认为这没有什么不妥

关于Facebook getLoginStatus() 函数和 phonegap 不更新状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17844316/

相关文章:

javascript - 在 "Warning: setState(...): Can only update a mounted or mounting component."函数中设置状态时出现 "FB.Event.subscribe()"错误

android - Phonegap HTML5/Android App - Iframe 高度问题

html - 滚动条出现在滑动菜单旁边

javascript - facebook 嵌入式视频 api 是否仍然支持 removeListener()?

javascript - Facebook 登录按钮 onlogin ="function"给出 ReferenceError

Facebook 中的 ruby Mechanize

iphone - iPhone 上的 facebook 连接 - 调用电话时出现错误 102 "Session key invalid or no longer valid",但流对话框仍然有效

javascript - 除了 iscroll4 之外,适用于 android 2.3 的滚动条

react-native - react native redux fbsdk 登录

android - 如何链接到特定 Facebook 新闻源帖子的页面(在应用程序或浏览器中)?