2011-12-30 24 views
1

我需要一些幫助來了解客戶經理爲我們提供的服務。我有一個需要使用令牌的Web服務。例如,如果一個開發人員想使用我的API,他們會使用像網址:Android AccountManager用於什麼?

http://myservice.com/addfriend?name=john&token=abc 

令牌「ABC」是由開發人員使用OAuth檢索。因此,現在任何發佈使用我的API的應用程序的開發人員都必須讓他們的用戶通過oauth流程來獲取他們自己的應用程序的令牌。

Android客戶經理是否解決了這個問題?開發人員可以向客戶經理查詢,看看用戶是否已經過去認證過,並重新使用該中心位置的任何令牌?我不明白這會如何工作,以Facebook爲例。他們已經創建了自己的單點登錄模塊。他們可能希望爲每個使用不同令牌的第三方應用程序進行跟蹤。每個第三方應用程序都會請求一組不同的權限。我不知道Android客戶經理支持任何。

所以我很好奇爲什麼Facebook會創建自己的sso支持而不是使用AccountManager來處理這個問題。也不知道我是否有用於AccountManager的用例正確,也許它有一個完全不同的用例。

謝謝

回答

1

自從我上次見到這可能會改變,但

AccountManager am = AccountManager.get(this); 
Account[] accounts = am.getAccountsByType("com.facebook.auth.login"); 
am.getAuthToken 

的AccountManager是去經過那裏註冊帳戶的API的方式。這些帳戶將顯示在菜單中的「帳戶&同步」中。你會使用

am.addAccount(String accountType, String authTokenType, String[] requiredFeatures, 
    Bundle addAccountOptions, Activity activity, 
    AccountManagerCallback<Bundle> callback, Handler handler); 

AndDev鏈接:http://developer.android.com/reference/android/accounts/AccountManager.html

+0

我很好奇,爲什麼Facebook有自己的SSO的實現有關係嗎?另外,作爲第三方開發者,我們是否應該能夠從Twitter這樣的服務中獲得令牌(確實出現在客戶經理中)? – user291701 2011-12-30 21:41:28

+0

FaceBook有兩個實現。 AccountManager真的是兩者中最好的。是的,您可以從AccountManager中出現的任何服務獲取令牌。 – 2012-01-02 23:41:54

相關問題