【问题标题】:Get list of tweets in user time line using Fabric Android使用 Fabric Android 获取用户时间线中的推文列表
【发布时间】:2015-08-11 16:11:07
【问题描述】:

我使用以下代码:

UserTimeline userTimeline = new UserTimeline.Builder().screenName("ZainAlabdin878").build();
final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter(MainActivity.this, userTimeline);
System.out.println(adapter.getCount()+"");

虽然我有推文,但我得到了输出 0。

我做错了吗? 我想要实现的是获取某个用户的推文列表。我正在使用 android studio 和插件。

*我的目标不是显示列表,而是获取列表

非常感谢。

【问题讨论】:

  • 查看此链接以了解结构实现:androidbeasts.wordpress.com

标签: android twitter twitter-fabric


【解决方案1】:
final TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
    Fabric.with(context, new Twitter(authConfig), new TweetUi());

    TwitterCore.getInstance().logInGuest(new Callback<AppSession>() {
        @Override
        public void success(Result<AppSession> result) {
            AppSession session = result.data;
            TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient(session);
            twitterApiClient.getStatusesService().userTimeline(tweetId, screenName, tweetCount, null, null, false, false, false, true, new Callback<List<Tweet>>() {
                @Override
                public void success(Result<List<Tweet>> listResult) {
                    for (Tweet tweet : listResult.data) {
                     // here you will get list
                    }
                }

                @Override
                public void failure(TwitterException e) {
                    e.printStackTrace();
                }
            });
        }

        @Override
        public void failure(TwitterException e) {
            Log.e(TAG, "Load Tweet failure", e);
        }
    });

more details available here

【讨论】:

    【解决方案2】:

    以下是实际获取 Tweet 对象所需的代码:

    ArrayList<Tweet> tweets = new ArrayList<>();
    TwitterCore.getInstance().getApiClient(session).getStatusesService()
        .userTimeline(null,
                "screenname",
                10 //the number of tweets we want to fetch,
                null,
                null,
                null,
                null,
                null,
                null,
                new Callback<List<Tweet>>() {
                    @Override
                    public void success(Result<List<Tweet>> result) {
                        for (Tweet t : result.data) {
                            tweets.add(t);
                            android.util.Log.d("twittercommunity", "tweet is " + t.text);
                        }
                    }
    
                    @Override
                    public void failure(TwitterException exception) {
                        android.util.Log.d("twittercommunity", "exception " + exception);
                    }
                });
    

    您需要在新线程(不是 UI 线程)中运行它

    编辑

    *从技术上讲,您不必在新线程中运行它,因为它是异步的(如果我错了,请在此纠正我)。我知道其他 Twitter API 调用是异步的,所以我假设这个也是异步的,尽管我无法在 Fabric 源中找到实际调用发生的位置..*

    这是 Fabric SDK 中 userTimeline() 的完整参数列表

    void userTimeline(@Query("user_id") Long var1, @Query("screen_name") String var2, @Query("count") Integer var3, @Query("since_id") Long var4, @Query("max_id") Long var5, @Query("trim_user") Boolean var6, @Query("exclude_replies") Boolean var7, @Query("contributor_details") Boolean var8, @Query("include_rts") Boolean var9, Callback<List<Tweet>> var10);
    

    【讨论】:

    • @AndrewSmiley...你能回答这个问题吗...stackoverflow.com/questions/31556884/…
    • @kumarkundan 已发布。我需要在今天晚些时候发布完整的答案
    • 我无法响应“result.data”
    • 尝试进入回调方法。结果为空吗?用户是否有任何公开推文?
    • 现在实际上得到了响应,但无法在任何字段中获取视频网址,而不是在实体字段 type=photo only not video...所以如何从中获取视频网址...是的这些一个是公开推文..
    猜你喜欢
    • 2015-10-19
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 2019-12-14
    • 2015-10-11
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多