Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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
Java 在安卓系统中,通过twitter上的用户_title(@user)获取推文_Java_Android_Twitter_Twitter4j_Twitter Fabric - Fatal编程技术网

Java 在安卓系统中,通过twitter上的用户_title(@user)获取推文

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集成的Android应用程序。我想通过twitter上的
用户获取推文。我在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);

不要在没有给出理由的情况下否决投票。你能解释一下你的答案吗?