Да, документация не очень хорошая. Сначала вы должны прочитать об OAuth. Twitter имеет хороший обзор.
Прежде всего вам нужен ключ и секретный ключ пользователя (вы можете получить их, зарегистрировав свое приложение в Tumblr). После этого вы должны использовать URL-адреса авторизации, которые предоставляет Tumblr, чтобы получить авторизацию от пользователя. Обычно вы генерируете URL-адрес запроса, с которого вы можете отправить пользователя в браузер, где он / она войдет в систему и авторизует ваше приложение. Это вызовет обратный вызов вашего приложения, и вы сможете получить токен oAuth. Сохраните это в своем приложении (SharedPreferences), чтобы вам не нужно было снова просить пользователя пройти аутентификацию. С этим токеном вы сможете взаимодействовать с API Tumblr, который требует аутентификации.
Обратите внимание, что вы также можете реализовать веб-просмотр вместо того, чтобы заставлять пользователя использовать браузер. Хотя это требует немного больше работы.
Я обнаружил, что последняя библиотека указателей не работает с Tumblr. Вам понадобится немного более старая версия. Зайдите сюда и скачайте эти файлы:
Импорт обеих библиотек в ваш проект. Чтобы использовать их, в основном вам нужно вызвать следующий код:
CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY,
CONSUMER_SECRET);
CommonsHttpOAuthProvider provider = new CommonsHttpOAuthProvider(
REQUEST_TOKEN_URL,
ACCESS_TOKEN_URL,
AUTH_URL);
String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
CALLBACK_URL может выглядеть примерно так: "tumblrapp: //tumblrapp.com/ok". Нет необходимости устанавливать URL-адрес обратного вызова в настройках Tumblr.
Кроме того, вам необходимо установить фильтр намерений, чтобы ваше приложение вызывалось после авторизации. Убедитесь, что ваш манифест выглядит так:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="tumblrapp"/>
</intent-filter>
Теперь после аутентификации вы можете получить токен следующим образом:
Uri uri = this.getIntent().getData();
if (uri != null) {
String token = uri.getQueryParameter("oauth_token");
}
Я сделал быстрый пример приложения. Вы можете проверить это здесь . Возможно, вы захотите переместить запрос в фоновый поток, поскольку он заблокирует пользовательский интерфейс.