java - 在 Android 中从 twitter 获取 user_mention (@user) 的推文

标签 java android twitter twitter4j twitter-fabric

我正在开发一个带有 Twitter 集成的 Android 应用程序。我想从 twitter 获取 user_mention 的推文。我在 twitter dev http://docs.fabric.io/android/twitter/show-timelines.html 上看到了这个文档。

这是部分代码:-

 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 。因此,如果您知道如何执行此操作(使用 fabrictwitter 4j),它将很有帮助。提前致谢。

最佳答案

对于您的要求,Twitter 搜索 API 是最好的解决方案。对于 Twitter Fabric,您可以使用 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);
}

您必须在此处输入您的查询来代替“q”。输入所需的查询,您将得到结果。您可以在 Twitter 的开发者控制台中尝试查询 Twitter Developer Console .

使用它的示例代码:

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) {

            }
        }

);

例如,要搜索所有提及 ladygaga 的推文,您的查询将为 https://twitter.com/search?q=%40ladygaga&src=typd 。这里 q 是“%40ladygaga”。您也可以使用您的 Twitter 帐户尝试一下。检查地址栏中的 url。它给出了应该查询什么的提示。

有关如何构建查询的更多信息,您可以查看 How to Build Twitter Search Queries 希望对您有所帮助。

关于java - 在 Android 中从 twitter 获取 user_mention (@user) 的推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31604903/

相关文章:

python - time.strptime() 和 python-twitter 错误

javascript - 如何仅使用 JavaScript 登录 Twitter

java - 防止在 Java 中分配 ArrayList 迭代器

java - 为什么在 XML 中设置空文本节点不是错误?

java - 为什么这里的错误出现在三元运算符中?

android - 如何在 Android 中使用步长为 0.5 的 SeekBar?

java - android widget textview 动态更新

android - 提供用于测试 Android 应用程序的解决方案

java - Android OpenCV 相机示例只是显示黑屏

ios - 在没有 iOS Composer 的情况下使用 Fabric API 在 Twitter 上分享视频