我希望 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 但我不确定如何使用它。请给我指导谁来实现这个。 谢谢。
最佳答案
Titanium.Facebook 现已弃用。 http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.Facebook
使用 Modules.Facebook。 http://docs.appcelerator.com/titanium/3.0/#!/api/Modules.Facebook
文档中给出的示例是 -
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();
在您的代码中,从按钮(btnLogin 和 btnLogout)的点击监听器中添加 facebook 登录和注销监听器。因为每次你点击你的按钮时,事件监听器都会被添加那么多次。
如果您希望 SSO 属性起作用。
放
fb.forceDialogAuth = false;
如果安装了官方 facebook 应用程序,它将在不打开对话框的情况下进行验证,如果设备没有 facebook 应用程序,它将打开 safari 并在用户未登录时询问电子邮件/密码。
关于android - 在 Titanium 应用程序中使用 Facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22244448/