我使用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上遇到类似问题?
答案 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);
}
});
}
让我知道这是否可以解决您的问题。