android - 在 Titanium 应用程序中使用 Facebook 登录

标签 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 但我不确定如何使用它。请给我指导谁来实现这个。 谢谢。

最佳答案

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/

相关文章:

iphone - iOS Facebook 发布对话框无法在设备上正确呈现

php - 通过 cURL 发送数据而无需重新加载页面

c# - UserManager.CreateAsync 挂起从单元测试而不是 Postman 执行

java - 我在使用 java 登录菜单应用程序时遇到问题

authentication - 以编程方式登录 Microsoft Online

android - 改造 - 处理具有动态结构的 JSON 键 - 数组/对象

java - 将值从适配器传递到导航组件中的 BottomNavigationView fragment

java - 如何创建可以容纳图像或视频的 View ?

Facebook API 速率限制 - 服务器端与客户端

android - 在 Android 中使用已弃用的 AbsoluteLayout 类?