在我的Android設備有四個應用程序使用Facebook API,現在登錄一個應用程序Facebook並最小化該應用程序和使用其他應用程序也有Facebook API,現在我想直接登錄在這個應用程序,我使用的是前一個,我不知道,噸需要再次登錄..我們如何在Android應用程序中單點登錄Facebook?
任何一個有比建議我的任何想法..
感謝
在我的Android設備有四個應用程序使用Facebook API,現在登錄一個應用程序Facebook並最小化該應用程序和使用其他應用程序也有Facebook API,現在我想直接登錄在這個應用程序,我使用的是前一個,我不知道,噸需要再次登錄..我們如何在Android應用程序中單點登錄Facebook?
任何一個有比建議我的任何想法..
感謝
UPDATE:
,因爲在Android環境中運行的所有應用它是自己的沙箱,從一個應用程序到另一個應用程序絕對沒有辦法登錄Facebook,它必須在每個應用程序中完成。
Facebook SSO內置到SDK中。代碼實現如下:
Facebook facebook = new Facebook(APPID);
facebook.authorize(SinglePost.this, {PERMISSIONS},
new DialogListener() {
@Override
public void onComplete(Bundle values) {
// control comes here if the login was successful
// Facebook.TOKEN is the key by which the value of
// access token is stored in the Bundle called
// 'values'
Log.d("COMPLETE", "AUTH COMPLETE. VALUES: "
+ values.size());
Log.d("AUTH TOKEN",
"== " + values.getString(Facebook.TOKEN));
updateStatus(values.getString(Facebook.TOKEN));
}
@Override
public void onFacebookError(FacebookError e) {
Log.d("FACEBOOK ERROR",
"FB ERROR. MSG: " + e.getMessage()
+ ", CAUSE: " + e.getCause());
}
@Override
public void onError(DialogError e) {
Log.e("ERROR", "AUTH ERROR. MSG: " + e.getMessage()
+ ", CAUSE: " + e.getCause());
}
@Override
public void onCancel() {
Log.d("CANCELLED", "AUTH CANCELLED");
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("onActivityResult", "onActivityResult");
facebook.authorizeCallback(requestCode, resultCode, data);
}
這是在您的應用程序中使用SSO的正常過程。 OP要求3個應用在登錄時進行身份驗證,只需一個應用(總共4個)。 –
@SiddharthLele很好,因爲每個應用程序運行在它自己的沙盒中,它們之間沒有任何聯繫,每個應用程序都必須自己登錄 – thepoosh
準確無誤。這個問題的整個前提是有點不可行的。我已經評論說在OP中也是這樣。它根本無法完成。 –
我不認爲這是可能的。每個應用程序都將在Facebook上擁有自己的應用程序ID,您將不得不對每個應用程序進行身份驗證,因爲它們將在身份驗證時生成自己的access_token。也就是說,一旦通過驗證,它將保持這種狀態,直到access_token過期。我個人從來沒有聽說過這樣的實施。如果我錯了,請糾正。 –