Android 如何使用twitter4j库获取屏幕名称的tweets?
我已经看过很多使用这个库的教程,但是我对它没有一个清晰的概念 首先,我如何验证twitter应用程序 有没有办法我可以硬编码访问令牌,这样用户就不必做任何事情,他可以通过输入屏幕名称直接搜索特定用户的tweet 在提到一个屏幕名称后,我如何获得tweets 我试着用twitter4j库阅读文档,但它对我没有帮助Android 如何使用twitter4j库获取屏幕名称的tweets?,android,twitter,twitter4j,tweets,Android,Twitter,Twitter4j,Tweets,我已经看过很多使用这个库的教程,但是我对它没有一个清晰的概念 首先,我如何验证twitter应用程序 有没有办法我可以硬编码访问令牌,这样用户就不必做任何事情,他可以通过输入屏幕名称直接搜索特定用户的tweet 在提到一个屏幕名称后,我如何获得tweets 我试着用twitter4j库阅读文档,但它对我没有帮助 我需要帮助我两天来一直困在这个问题上,请提供帮助…有多种验证方法: 当前位置我将在回答中对此进行简要解释 :对于无法访问或嵌入web浏览器的应用程序 :用作应用程序授权,因此用户不需要
我需要帮助我两天来一直困在这个问题上,请提供帮助…有多种验证方法:
- 当前位置我将在回答中对此进行简要解释
- :对于无法访问或嵌入web浏览器的应用程序
- :用作应用程序授权,因此用户不需要登录,而是使用应用程序进行授权
公共类MainActivity扩展活动{
//推特特性
私有公共httpOauthConsumer httpOauthConsumer;
私有OAuthProvider httpOauthprovider;
公共最终静态字符串consumerKey=“您的使用者密钥”;
public final静态字符串consumerSecret=“您的消费者机密”;
私有最终字符串CALLBACKURL=“SCHEME://HOST”;
私人推特;
访问令牌a;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
StrictMode.enableDefaults();
requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,
WindowManager.LayoutParams.FLAG(全屏);
setContentView(R.layout.activity_main);
doAuth();
}
私有void doAuth(){
试一试{
httpOauthConsumer=新的CommonHttpOAuthConsumer(consumerKey,
消费者信用);
httpOauthprovider=新的DefaultOAuthProvider(
"https://twitter.com/oauth/request_token",
"https://twitter.com/oauth/access_token",
"https://twitter.com/oauth/authorize");
字符串authUrl=httpOauthprovider.RetrieverRequestToken(
httpOauthConsumer,CALLBACKURL);
this.startActivity(新意图)(Intent.ACTION\u视图,Uri
.parse(authUrl));
}捕获(例外e){
Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG.show();
}
}
@凌驾
受保护的void onNewIntent(意图){
super.onNewIntent(意向);
Uri=intent.getData();
if(uri!=null&&uri.toString().startsWith(CALLBACKURL)){
字符串验证程序=uri
.getQueryParameter(oauth.signpost.oauth.oauth_验证器);
//这将在消费者中填充令牌和令牌_secret
试一试{
httpOauthprovider.retrieveAccessToken(httpOauthConsumer,
验证者);
}捕获(OAuthMessageSignerException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(OAuthNotAuthorizedException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(OAutheExpectationFailedException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}catch(OAuthCommunicationException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
//它实际设置授权以便您可以使用它的重要部分
a=新的AccessToken(httpOauthConsumer.getToken(),
httpOauthConsumer.getTokenSecret());
twitter=new TwitterFactory().getInstance();
setOAuthConsumer(consumerKey,ConsumerCret);
twitter.setOAuthAccessToken(a);
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.activity\u主菜单);
返回true;
}
}
为了使这项工作,您需要对您的清单进行一些调整
- 授予it使用internet的权限:
- 添加此意向筛选器
Twitter
对象来请求时间表等
例如:
private void getTweets(字符串用户){
试一试{
列出状态;
status=twitter.getUserTimeline(用户);
System.out.println(“显示@”+用户+“'的用户时间线”);
用于(状态:状态){
System.out.println(“@”+status.getUser().getScreenName()
+“-”+status.getText());
}
}捕获(twitter异常){
te.printStackTrace();
System.out.println(“未能获取时间线:+te.getMessage());
}
}
瞧 有多种验证方法:
- 当前位置我将在回答中对此进行简要解释
- :对于无法访问或嵌入web浏览器的应用程序
- :用作应用程序授权,因此用户不需要登录,而是使用应用程序进行授权
公共类MainActivity扩展活动{
//推特特性
私有公共httpOauthConsumer httpOauthConsumer;
私有OAuthPro
<uses-permission android:name="android.permission.INTERNET" />
<activity
android:name="com.example.eredivisietwitter.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance" >
<intent-filter>
<action android:name="android.intent.action.VIEW" >
</action>
<category android:name="android.intent.category.DEFAULT" >
</category>
<category android:name="android.intent.category.BROWSABLE" >
</category>
<data
android:host="HOST"
android:scheme="SCHEME" >
</data>
</intent-filter>
private final String CALLBACKURL = "SCHEME://HOST";