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

Posted

技术标签:

【中文标题】Titanium Facebook 模块未在 iOS 7 上完成登录【英文标题】:Titanium Facebook module not completing login on iOS 7 【发布时间】:2014-01-08 08:16:37 【问题描述】:

我在使用 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 上遇到类似问题吗?

【问题讨论】:

您使用的是哪个钛 sdk? 【参考方案1】:

看来我修好了。在我的 Facebook 应用程序上,我必须添加一个 iOS 应用程序并打开“单点登录”。 Facebook 昨晚遇到了问题,不允许我对我的应用程序进行更改,但我今天刚刚尝试过,它现在可以工作了。我认为这对于 iOS 7 来说可能是新事物,但我不确定。但是,将 Single Sign On 设置为 On 对我有用。

【讨论】:

【参考方案2】:

只需在调用函数中声明所有波纹管变量,而不是在每次调用 fb.authorize() 时全局声明。

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


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

【讨论】:

以上是关于Titanium Facebook 模块未在 iOS 7 上完成登录的主要内容,如果未能解决你的问题,请参考以下文章

选择器更改事件未在 Titanium 中首次触发

Titanium 应用程序可以访问 ios 共享功能吗?

iOS LocationManager 未更新位置(Titanium Appcelerator 模块)

适用于 Android 和 iOS 设备的 Titanium Appcelerator 蓝牙模块 [关闭]

Titanium (Android) - 邀请 Facebook 好友 -> 错误

Facebook警告输入凭据未在真实设备IOS6上出现