用应用程序在Chrome中登录Facebook

时间:2014-03-07 07:50:15

标签: android facebook authentication titanium-mobile appcelerator

我希望将facebook帐户视为我的移动钛应用程序的身份验证。 我正在使用此代码 facebook登录

 Ti.Facebook=Titanium.Facebook = require('facebook');
 Ti.Facebook.appid = FACEBOOK_APP_ID;
 Ti.Facebook.permissions = ['publish_stream']; // Permissions your app needs
 Ti.Facebook.forceDialogAuth = true;
 var btnLogin = Titanium.UI.createButton({
   title: 'Hello',
   top: 10,
   width: 100,
   height: 50
});
win.add(btnLogin);
btnLogin.addEventListener('click',function(e)
{ 
Ti.Facebook.addEventListener('login', function(e) {
    if (e.success) {
        alert('Logged In');
    } else if (e.error) {
        alert(e.error);
    } else if (e.cancelled) {
        alert("Canceled");
    }
});
Ti.Facebook.authorize();
});

和FB注销

    var btnLogout = Titanium.UI.createButton({
       title: 'Hello',
       top: 10,
       width: 100,
       height: 50
    });
    win2.add(btnLogout);
    btnLogout.addEventListener('click',function(e)
    {
     Ti.Facebook.addEventListener('logout', function(e) {
        alert('Logged out');
    });
    Ti.Facebook.logout();
});

但这是一个对话框,输入电子邮件和密码。某些应用程序使用Facebook帐户作为他们的sigup并且不打开该对话并直接登录。 我找到了另一种资源     https://gist.github.com/damienb/855583 但我不知道如何使用它。请指导我实施此操作的人员。 感谢。

1 个答案:

答案 0 :(得分:3)

Titanium.Facebook现已弃用。 http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.Facebook

使用Modules.Facebook。 http://docs.appcelerator.com/titanium/3.0/#!/api/Modules.Facebook

doc中给出的示例示例是 -

var fb = require('facebook');
fb.appid = FACEBOOK_APP_ID;
fb.permissions = ['publish_stream']; // Permissions your app needs
fb.forceDialogAuth = true;
fb.addEventListener('login', function(e) {
if (e.success) {
    alert('Logged In');
} else if (e.error) {
    alert(e.error);
} else if (e.cancelled) {
    alert("Canceled");
}
});
fb.authorize();

在您的代码中,添加facebook login&注销侦听器超出按钮的单击侦听器(btnLogin和btnLogout)。因为每次单击按钮时都会多次添加事件监听器。

如果您希望SSO属性起作用。 组 fb.forceDialogAuth = false; 如果安装了正式的Facebook应用程序,它将在不打开对话框的情况下验证,如果设备没有Facebook应用程序,它将打开safari并在用户未登录时询问电子邮件/密码。