通过Android的AccountManager类进行Twitter身份验证

时间:2011-02-01 22:39:22

标签: android twitter twitter-oauth accountmanager

我正在开发基于Twitter的应用程序,并尝试将Android内置的帐户支持纳入Twitter。以下代码用于弹出我的应用程序的确认对话框以访问twitter,但我不确定要传递什么作为authenticationType。任何帮助,将不胜感激。我在各地搜索过,似乎无法找到正确的答案。它取代了下面的“oauth”。

AccountManager am = AccountManager.get(this);
Account[] accts = am.getAccountsByType(TWITTER_ACCOUNT_TYPE);
if(accts.length > 0) {
    Account acct = accts[0];
    am.getAuthToken(acct, "oauth"/*what goes here*/, null, this, new AccountManagerCallback<Bundle>() {

    @Override
    public void run(AccountManagerFuture<Bundle> arg0) {
        try {
                     Bundle b = arg0.getResult();  
                     Log.e("TrendDroid", "THIS AUTHTOKEN: " + b.getString(AccountManager.KEY_AUTHTOKEN));  
                } catch (Exception e) {  
                     Log.e("TrendDroid", "EXCEPTION@AUTHTOKEN");  
                }  
    }}, null);
}

2 个答案:

答案 0 :(得分:8)

如果你想要OAuth,你应该使用那些:

  • com.twitter.android.oauth.token
  • com.twitter.android.oauth.token.secret

如果您需要用户密码,那么您可以编写自己的身份验证器。官方Twitter应用程序不存储密码。密码只使用一次才能获得这两个令牌。

答案 1 :(得分:0)

来自AccountManager docs

  

某些身份验证器具有身份验证令牌类型,其值为   认证依赖性。一些服务   使用不同的令牌类型进行访问   不同的功能 - 为   例如,Google使用不同的身份验证   用于访问Gmail和Google的令牌   同一帐户的日历。

我认为,这不是很重要。你应该真的问twitter认证者的开发者。或者自己写。