【发布时间】:2020-06-05 15:23:12
【问题描述】:
我正在尝试在我的 Android 应用程序上查询 Twitter,并使用改造检索与关键字“AgilebizKE”相关的所有推文。 我目前收到 400 错误代码。在做了一些研究之后,我发现我的查询参数是错误的,或者我的请求没有被“授权”。但是,我认为我的查询参数没有问题。 主要活动相关代码:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.twitter.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
tweetAPI tweetapi = retrofit.create(tweetAPI.class);
Call<List<tweet>> call = tweetapi.getTweets();
call.enqueue(new Callback<List<tweet>>() {
@Override
public void onResponse(Call<List<tweet>> call, Response<List<tweet>> response) {
if (!response.isSuccessful()) {
tweets_results.setText("code: " + response.code());
return;
}
List<tweet> tweets = response.body();
for (tweet tweet : tweets){
String content = "";
content+="Created at: "+tweet.getCreated_at()+"\n";
content+="Text: "+tweet.getText()+"\n";
content+="Retweets: "+tweet.getRetweet_count()+"\n";
content+="Favs: "+tweet.getFavorite_count()+"\n\n";
tweets_results.append(content);
}
}
@Override
public void onFailure(Call<List<tweet>> call, Throwable t) {
tweets_results.setText(t.getMessage());
}
});
界面
public interface tweetAPI {
@GET("1.1/search/tweets.json?q=AgilebizKE")
Call<List<tweet>> getTweets();
}
发推文
ublic class tweet {
private String created_at;
private String text;
private String retweet_count;
private String favorite_count;
public String getCreated_at() {
return created_at;
}
public String getText() {
return text;
}
public String getRetweet_count() {
return retweet_count;
}
public String getFavorite_count() {
return favorite_count;
}
}
【问题讨论】:
-
你能发布你的 LogCat 吗?
-
如何生成 oAuth 标头?你能访问任何其他 Twitter API 吗?
-
来自此文档[developer.twitter.com/en/docs/tweets/search/api-reference/….此 api 需要身份验证。
-
@HelloWorld 在文档中似乎暗示只有高级和企业搜索需要身份验证。
标签: java android rest twitter retrofit