首页 文章

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

提问于
浏览
0

我使用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

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

  • 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);
          }
    });
    
    }
    

    让我知道这是否解决了你的问题 .

相关问题