1

我希望Facebook帳戶被視爲我的移動鈦應用程序的身份驗證。 我使用此代碼 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(); 
}); 

但是,這是給對話進入電子郵件和password.There某些應用程序正在使用Facebook帳戶作爲其sigup並且不要打開對話並直接登錄。 我發現另一個資源 https://gist.github.com/damienb/855583 但我不知道如何使用它。請給我指導誰來實現這一點。 謝謝。

回答

3

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

Use Modules.Facebook。在doc給出 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(); 

在你的代碼,添加Facebook登錄&註銷監聽你的按鈕(btnLogin和btnLogout)的點擊收聽的。因爲每當你點擊你的按鈕時,事件監聽器會被多次添加。

如果您希望SSO屬性正常工作。 設置 fb.forceDialogAuth = false; 如果安裝了官方的Facebook應用程序,它將驗證,而不打開對話框,如果設備沒有Facebook應用程序將打開Safari瀏覽器,並要求輸入電子郵件/密碼,如果用戶沒有登錄。