Titanium Facebook模块未在iOS 7上完成登录

时间:2014-01-08 08:16:38

标签: javascript ios facebook titanium

我使用Titanium 3.2.0.GA和Facebook模块遇到了一个奇怪的问题。当我尝试调用fb.authorize();如果我通过iOS 7登录Facebook,会弹出一个对话框,询问我是否愿意让它等等等等。但是一旦我点击“允许”,它就会触发代码为-1的登录事件,但是不成功。但是,如果我没有通过iOS 7登录Facebook,并在调用fb.authorize()后通过Safari登录Facebook,则一切都按预期工作,并且登录事件成功触发。

var fb = require('facebook');
fb.appid = ****;
fb.permissions = ['email'];
fb.forceDialogAuth = false;

fb.addEventListener("login", function(e) {
    if (fb.success && fb.accessToken != null) {
        console.log(fb.accessToken);
    }
});

就像我上面所说,当按下Facebook按钮时,我只需拨打fb.authorize();

是否有其他人在使用Titanium的iOS 7上遇到类似问题?

2 个答案:

答案 0 :(得分:0)

看起来我修好了。在我的Facebook应用程序上,我必须添加一个iOS应用程序并打开“单点登录”。 Facebook昨晚有问题,不会让我对我的应用程序进行更改,但我今天只是尝试了它现在有效。我认为这可能是iOS 7的新功能,但我不确定。但是,将Single Sign On转为On对我有用。

答案 1 :(得分:0)

每次调用fb.authorize()时,只需声明调用函数中的所有bellow变量,而不是全局其他变量。

var fb = null;
function facbooksharing(sharingData){
      if(fb == null){

        fb = require('facebook');
        fb.appid = "******";
        fb.permissions = ['publish_stream', 'read_stream','publish_actions'];
        fb.forceDialogAuth = true; `enter code here`
    }
        if(fb.loggedIn==true)
     {
        fb.dialog("feed", sharingData, showRequestResult);
     }else{

       fb.authorize();
     }
      function showRequestResult(e) 
    {

        if (e.success)
         {
           if (e.result)
            {
               Ti.API.info("Data Shared between your friend successfully.");
            }
        }
    }

      fb.addEventListener("login", function(e) {
      if (fb.success && fb.accessToken != null) {
            console.log(fb.accessToken);
      }
});

}

让我知道这是否可以解决您的问题。