URL-адрес обратного вызова Twitter для Android
Мне нужно реализовать логин OAuth в моем приложении Android с помощью API Twitter. Я нашел отличный проект на GitHub ( spring-android-samples) с очень хорошим примером, но у меня есть проблема с параметром "Callback URL".
Когда я отправляю свои логин и пароль, мое приложение для Android открывает экземпляр браузера (с URL обратного вызова), а не обрабатывает ответ в фоновом режиме:
Кто-нибудь должен был реализовать нечто подобное и мог бы помочь мне, пожалуйста? Спасибо!
1 ответ
Вам на самом деле не нужно регистрировать x-android-org-springsource-twitterclient://twitter-oauth-response
URL с настройками приложения Twitter. На самом деле, URL обратного вызова, настроенный в Twitter, не имеет большого значения в этом случае. URL обратного вызова отправляется в Twitter в рамках запроса на получение токена запроса OAuth.
Обратите внимание, что в пределах AndroidManifest.xml
там указано <intent-filter>
для TwitterWebOAuthActivity
который настраивает этот URL обратного вызова. Этот фильтр указывает Android перенаправлять запросы на активность.
<activity
android:name=".TwitterWebOAuthActivity"
android:excludeFromRecents="true"
android:noHistory="true" >
<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:host="twitter-oauth-response"
android:scheme="x-org-springsource-android-twitterclient" />
</intent-filter>
</activity>
Обратите внимание также в res/values/connect_settings.xml
twitter_oauth_callback_url
Строка снова настроена.
<string name="twitter_oauth_callback_url">x-org-springsource-android-twitterclient://twitter-oauth-response</string>
Эта строка используется в TwitterWebOAuthActivity
получить токен запроса Twitter.
@Override
protected OAuthToken doInBackground(Void... params) {
// Fetch a one time use Request Token from Twitter
return connectionFactory.getOAuthOperations().fetchRequestToken(getOAuthCallbackUrl(), null);
}
Если вы хотите изменить URL-адрес обратного вызова для своего собственного приложения, необходимо убедиться, что оно настроено так же, как в AndroidManifest.xml
а также res/values/connect_settings.xml
,