Java 在安卓系统中,通过twitter上的用户_title(@user)获取推文
我正在开发一个与twitter集成的Android应用程序。我想通过twitter上的Java 在安卓系统中,通过twitter上的用户_title(@user)获取推文,java,android,twitter,twitter4j,twitter-fabric,Java,Android,Twitter,Twitter4j,Twitter Fabric,我正在开发一个与twitter集成的Android应用程序。我想通过twitter上的用户获取推文。我在twitter dev上看到了这个文档 以下是代码的一部分:- public class TimelineActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
用户获取推文。我在twitter dev上看到了这个文档
以下是代码的一部分:-
public class TimelineActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timeline);
TwitterAuthConfig authConfig = new TwitterAuthConfig("xxxxxxbbbbwdqddq", "eieuhquifhioqhfiohqoifhoi");
Fabric.with((this), new TwitterCore(authConfig), new TweetUi());
UserTimeline userTimeline = new UserTimeline.Builder().screenName("fabric").build();
使用这种方法,我将根据屏幕名称
获得时间线。但是我想要的是所有提到某个特定用户的推文(比如-@user
)而不是时间线。我已经用fabric
试过了,但我也可以试试twitter4j
。因此,如果您知道如何做到这一点(使用fabric
或twitter4j
),这将非常有用。提前感谢。根据您的要求,Twitter搜索API是最好的解决方案。对于Twitter结构,您可以使用SearchService。您可以从Fabric的twitter客户端获得SearchService。详情如下:
Fabric.with(this, new Twitter(authConfig));
TwitterSession currentSession = Twitter.getSessionManager().getActiveSession();
TwitterApiClient twitterApiClient = new TwitterApiClient(currentSession);
SearchService searchService = twitterApiClient.getSearchService();
//Other services in Fabric Twitter
AccountService accountService =twitterApiClient.getAccountService();
StatusesService statusesService = twitterApiClient.getStatusesService();
FavoriteService favoriteService = twitterApiClient.getFavoriteService();
以下是搜索服务的请求模板:
public interface SearchService {
@GET("/1.1/search/tweets.json")
void tweets(@Query("q") String var1, @EncodedQuery("geocode") Geocode var2, @Query("lang") String var3, @Query("locale") String var4, @Query("result_type") String var5, @Query("count") Integer var6, @Query("until") String var7, @Query("since_id") Long var8, @Query("max_id") Long var9, @Query("include_entities") Boolean var10, Callback<Search> var11);
}
公共接口搜索服务{
@获取(“/1.1/search/tweets.json”)
void tweets(@Query(“q”)String var1、@EncodedQuery(“geocode”)geocode var2、@Query(“lang”)String var3、@Query(“locale”)String var4、@Query(“result_type”)String var5、@Query(“count”)Integer var6、@Query(“until”)String var7、@Query(“自_id”)Long var8、@Query(“max_id”)Long var9、@Query(“包含_实体”)Boolean var10、Callback var11);
}
您必须在此处输入查询以代替“q”。输入所需的查询,您将得到结果。您可以在Twitter的开发者控制台中尝试查询
使用它的示例代码:
searchService.tweets("@ladygaga", null, null, null, SEARCH_RESULT_TYPE, SEARCH_COUNT, null, null,
maxId, true, new Callback<Search>() {
@Override
public void success(Result<Search> searchResult) {
final List<Tweet> tweets = searchResult.data.tweets;
// Use tweets as you like
}
@Override
public void failure(TwitterException error) {
}
}
searchService.tweets(@ladygaga),null,null,null,搜索结果类型,搜索计数,null,null,
maxId,true,新回调(){
@凌驾
公共作废成功(结果搜索结果){
最终列表tweets=searchResult.data.tweets;
//随意使用推文
}
@凌驾
公共无效失败(TwitterException错误){
}
}
))
例如,搜索所有提到ladygaga的推文时,您的查询将显示为。这里q是%40ladygaga。您也可以使用您的twitter帐户进行尝试。在地址栏中检查url。它给出了应该查询什么的提示
有关如何生成查询的更多信息,请查看
希望有帮助。你可以试试看!。我的应用程序使用非常好
public class...
UserTimeline userTimeline;
String username;
TwitterSession session;
TweetTimelineListAdapter adapter;
..... oncreate()....
TwitterAuthConfig authConfig = new TwitterAuthConfig("Xcp2iipj28BMVda6OSxVAwwLz", "grZ1IJYIHUPQsrf8F8fsbA06O55bfRGENW8mPbDTspoVKcV1xS");
Fabric.with(getActivity(), new TwitterCore(authConfig), new TweetUi());
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
session = Twitter.getSessionManager().getActiveSession();
username = session.getUserName();
userTimeline = new UserTimeline.Builder()
.screenName(username)
.build();
adapter = new TweetTimelineListAdapter.Builder(getActivity())
.setTimeline(userTimeline)
.build();
setListAdapter(adapter);
不要在没有给出理由的情况下否决投票。你能解释一下你的答案吗?