我正在创建一个Android应用。我在Android中使用Twitter集成。
我的需要
我想从Twitter https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/user-object
我的工作
我使用Twitter成功实现了Login。
这是我的主要活动代码::
df %>%
mutate(horizon = factor(horizon, levels = c("L","F","H","B","A"))) %>%
ggplot(aes(site, value)) + geom_col(aes(fill = horizon)) + labs(y = "Soil depth (cm)")+
scale_fill_discrete(breaks = c("L","F","H","A","B"))
我的问题:
现在我想访问Twitter Api的用户对象。我不知道怎么做。请告诉我如何调用并获取对象。
答案 0 :(得分:1)
可以通过Retrofit通过API调用获取用户对象。 如果您已经包含Twitter工具包,则不必在项目中明确包含Retrofit。
使用twitter-kit中提供的新OAuth1aInterceptor
创建Retrofit对象。
retrofit = new Retrofit.Builder()
.baseUrl("https://api.twitter.com/1.1/")
.addConverterFactory(GsonConverterFactory.create())
// Twitter interceptor
.client(new OkHttpClient.Builder()
.addInterceptor(new OAuth1aInterceptor(/*twitter-session*/, /*twitter-auth-config*/))
.build())
.build();
像往常一样为Interface
创建Retrofit Client
。
import com.twitter.sdk.android.core.models.User;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface ApiInterface {
@GET("users/show.json")
Call<User> getUserDetails(@Query("screen_name") String screenName);
}
致电ApiInterface
函数getUserDetails()
ApiInterface apiInterface = retrofit.create(ApiInterface.class);
Call<User> call = apiInterface.getUserDetails(/*screen-name*/);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
}
@Override
public void onFailure(Call<User> call, Throwable t) {
}
});
twitter-session:这可以从TwitterCore.getInstance().getSessionManager().getActiveSession()
获取。
twitter-auth-config:可以从TwitterCore.getInstance().getAuthConfig()
screen-name:可以从当前活动会话screen-name
twitter-handle
,即已登录用户的/*session*/.getUserName()
~Twitter API参考索引https://developer.twitter.com/en/docs/api-reference-index