【问题标题】:Making REST API calls from an Android app using TwitterApiClient class使用 TwitterApiClient 类从 Android 应用程序进行 REST API 调用
【发布时间】:2015-01-27 05:03:24
【问题描述】:

我在我的 Android 应用中使用 Twitter 的 Fabric SDK。我需要获取 Twitter 用户的推文和状态消息。我找不到任何示例,并且文档对此也不是很清楚,因此我发布了一个新问题。有人可以提供一个如何使用TwitterApiClient 类的例子吗?

【问题讨论】:

    标签: java android twitter twitter-fabric tweets


    【解决方案1】:

    Twitter Kit 能够进行 API 调用。官方文档在这里:https://dev.twitter.com/twitter-kit/android/api

    一切从状态服务开始:

    StatusService service = Twitter.getApiClient().getStatusesService()
    

    Statuses 服务提供的一些方法(这些方法直接映射到 REST API 端点,包括参数。

    service.homeTimeline();
    service.lookup();
    service.mentionsTimeline();
    service.show();
    

    做请求的机制和所有的服务都差不多,下面是Searching from Cannonball sample app code的例子:

    final SearchService service = Twitter.getApiClient().getSearchService();
    
    service.tweets(SEARCH_QUERY, null, null, null, SEARCH_RESULT_TYPE, SEARCH_COUNT, null, null,
                maxId, true, new Callback<Search>() {
                    @Override
                    public void success(Result<Search> searchResult) {
                        Crashlytics.setLong(App.CRASHLYTICS_KEY_SEARCH_COUNT,
                                searchResult.data.searchMetadata.count);
                        setProgressBarIndeterminateVisibility(false);
                        final List<Tweet> tweets = searchResult.data.tweets;
                        adapter.getTweets().addAll(tweets);
                        adapter.notifyDataSetChanged();
                        if (tweets.size() > 0) {
                            maxId = tweets.get(tweets.size() - 1).id - 1;
                        } else {
                            endOfSearchResults = true;
                        }
                        flagLoading = false;
                    }
    
                    @Override
                    public void failure(TwitterException error) {
                        Crashlytics.logException(error);
    
                        setProgressBarIndeterminateVisibility(false);
                        Toast.makeText(PoemPopularActivity.this,
                                getResources().getString(R.string.toast_retrieve_tweets_error),
                                Toast.LENGTH_SHORT).show();
    
                        flagLoading = false;
                    }
                }
    );
    

    【讨论】:

    • 这行得通。但是,我们是否知道如何让应用程序挂起,直到我们在回调块中接收到数据?
    猜你喜欢
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 2021-03-06
    • 2011-07-20
    相关资源
    最近更新 更多