通过Android';s AccountManager类
我正在开发一个基于twitter的应用程序,并试图整合Android内置的twitter帐户支持。下面的代码用于弹出我的应用程序访问twitter的确认对话框,但我不确定作为authenticationType传入什么。任何帮助都将不胜感激。我在谷歌上搜索了所有的地方,似乎都找不到正确的答案。它代替下面的“oauth”通过Android';s AccountManager类,android,twitter,twitter-oauth,accountmanager,Android,Twitter,Twitter Oauth,Accountmanager,我正在开发一个基于twitter的应用程序,并试图整合Android内置的twitter帐户支持。下面的代码用于弹出我的应用程序访问twitter的确认对话框,但我不确定作为authenticationType传入什么。任何帮助都将不胜感激。我在谷歌上搜索了所有的地方,似乎都找不到正确的答案。它代替下面的“oauth” AccountManager am=AccountManager.get(这个); 账户[]账户=am.getAccountsByType(TWITTER账户类型); 如果(科目
AccountManager am=AccountManager.get(这个);
账户[]账户=am.getAccountsByType(TWITTER账户类型);
如果(科目长度>0){
科目科目=科目[0];
getAuthToken(acct,“oauth”/*此处的内容*/,null,this,new accountmanager callback()){
@凌驾
公共作废运行(AccountManagerFuture arg0){
试一试{
Bundle b=arg0.getResult();
Log.e(“TrendDroid”,“THIS AUTHTOKEN:”+b.getString(AccountManager.KEY\u AUTHTOKEN));
}捕获(例外e){
Log.e(“TrendDroid”EXCEPTION@AUTHTOKEN");
}
}},空);
}
如果您想要OAuth,您应该使用以下选项:
- com.twitter.android.oauth.token
- com.twitter.android.oauth.token.secret
我认为,这不是很重要。你真的应该问问twitter验证器的开发者。或者写你自己的。很好的问题:-)你能提供TWITTER账户类型的值,以便答案是完整的吗?com.TWITTER.android.auth.logindodes Facebook在android上有这种类型的oauth吗?在我们公司,他们在我们的应用程序中使用FBI对话框。但用户怎么能相信这是一个facebook对话框而不是一些愚蠢的pishing呢?这些令牌是否可以根据api和应用程序进行身份验证?我试图使用它,我收到一个401错误。当我尝试使令牌无效并尝试接收另一个令牌时,它不起作用。有什么想法/线索吗?Thanks@PedroFraca,在我的测试中,Android的AccountManager推特令牌仅与推特的官方消费者密钥和机密(在那里…)结合使用。如果不使用Twitter的凭据,您必须使用WebView授权流,并让用户在您的应用程序中输入生成的pin。我在这里有一个完全开源的解决方案:
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);
}