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 上完成登录的主要内容,如果未能解决你的问题,请参考以下文章
iOS LocationManager 未更新位置(Titanium Appcelerator 模块)
适用于 Android 和 iOS 设备的 Titanium Appcelerator 蓝牙模块 [关闭]