Вот как это работает ... вы делаете вызов для аутентификации в Twitter (открывая веб-браузер). URL аутентификации должен содержать URL обратного вызова. URL обратного вызова обычно выглядит так: x-your-application-name-oauth-twitter://callback
(*).
Второй шаг - добавить фильтр намерений к вашему Activity
(реализация аутентификации в твиттере требует, чтобы вы знали, как работает Android (если вы не найдете учебник, который сделает все за вас, но я думаю, что это не тот случай, который вам кажется будь умным парнем, не так ли?)). Как бы то ни было, вы делаете это, добавляя что-то подобное в манифест:
<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="x-your-application-name-oauth-twitter" android:host="callback"/>
</intent-filter>
Это в основном способ сказать ОС Android: " Эй, чувак, я могу обработать любой URL, который выглядит как x-your-application-name-oauth-twitter://callback
". Таким образом, после аутентификации пользователя твиттер позвонит по этому URL, а ваше приложение восстановит управление.
Обычно ваша активность должна создаваться с помощью тега android:launchMode="singleTask"
, тогда вы должны переопределить метод вашей деятельности onNewIntent
, который будет вызван, когда ваше приложение снова получит контроль. Внутри Intent
вы найдете информацию об обратном вызове.
(*) Создать URL-адрес, который вы должны запустить (и который позволит пользователям проходить аутентификацию), довольно сложно. OAuth - хороший, но сложный в освоении стандарт. Таким образом, вы можете использовать сторонние библиотеки, которые помогут вам в этом. Например, вы можете использовать Java-библиотеку Oauth Signpost. Однако я бы порекомендовал вам придерживаться библиотеки twitter4j, которая поможет вам с OAuth, а также позволит вам взаимодействовать с Twitter API.