Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用twitter4j库获取屏幕名称的tweets?_Android_Twitter_Twitter4j_Tweets - Fatal编程技术网

Android 如何使用twitter4j库获取屏幕名称的tweets?

Android 如何使用twitter4j库获取屏幕名称的tweets?,android,twitter,twitter4j,tweets,Android,Twitter,Twitter4j,Tweets,我已经看过很多使用这个库的教程,但是我对它没有一个清晰的概念 首先,我如何验证twitter应用程序 有没有办法我可以硬编码访问令牌,这样用户就不必做任何事情,他可以通过输入屏幕名称直接搜索特定用户的tweet 在提到一个屏幕名称后,我如何获得tweets 我试着用twitter4j库阅读文档,但它对我没有帮助 我需要帮助我两天来一直困在这个问题上,请提供帮助…有多种验证方法: 当前位置我将在回答中对此进行简要解释 :对于无法访问或嵌入web浏览器的应用程序 :用作应用程序授权,因此用户不需要

我已经看过很多使用这个库的教程,但是我对它没有一个清晰的概念

首先,我如何验证twitter应用程序

有没有办法我可以硬编码访问令牌,这样用户就不必做任何事情,他可以通过输入屏幕名称直接搜索特定用户的tweet

在提到一个屏幕名称后,我如何获得tweets

我试着用twitter4j库阅读文档,但它对我没有帮助


我需要帮助我两天来一直困在这个问题上,请提供帮助…

有多种验证方法:

  • 当前位置我将在回答中对此进行简要解释

  • :对于无法访问或嵌入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";