Выполнение вызовов REST API из приложения Android с использованием класса TwitterApiClient

Я использую Fabric SDK от Twitter в своем приложении для Android. Мне нужно получить твиты и сообщения о статусе пользователя Twitter. Мне не удалось найти никаких примеров, и документация не очень ясна по этому поводу, поэтому я опубликовал новый вопрос. Может ли кто-нибудь привести пример использования класса TwitterApiClient?


person Y.S    schedule 28.11.2014    source источник


Ответы (1)


Twitter Kit может выполнять вызовы API. Официальная документация находится здесь: https://dev.twitter.com/twitter-kit/android/api

Все начинается с Сервиса Статусов:

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

Некоторые методы доступны в службе статусов (эти методы имеют прямое сопоставление с конечными точками REST API, включая параметры.

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

Механизм выполнения запроса аналогичен всем службам, вот пример поиска из Код примера приложения Cannonball:

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;
                }
            }
);
person Cipriani    schedule 01.12.2014
comment
Это работает. Однако знаем ли мы, как сделать так, чтобы приложение приостановилось, пока мы не получим данные обратно в блок обратного вызова? - person AndrewSmiley; 28.06.2015