2010-09-14 3 views
4

Я создал приложение для Android, которое требует OAuth. Все работало хорошо, используя обратный вызов по специальной схеме, который перехватывает Android. Похоже, что Yahoo изменила цели, и теперь пользовательская схема не принимается Yahoo.Android-фильтр-фильтр для http-схемы

Теперь я рассматриваю возможные альтернативные подходы. Моя первая попытка - использовать обычную схему http и изменить фильтр намерений, чтобы перехватить новый URL. У меня есть следующие в моем AndroidManifest.xml:

<intent-filter> 
    <action android:name="android.intent.action.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category> 
    <data android:host="www.test.com" android:scheme="http"></data> 
    </intent-filter> 

Где www.test.com будет заменен с доменом, что у меня есть. Кажется:

  • Этот фильтр срабатывает, когда я нажимаю ссылку на странице.
  • Он не запускается при переадресации Yahoo, браузер открывает веб-сайт по адресу www.test.com.
  • Он не запускается при вводе имени домена непосредственно в браузере.

Так может кто-нибудь помочь мне с

  • Когда именно это намерение фильтр будет срабатывать?
  • Любые изменения в фильмах-намерениях или разрешениях, которые будут расширять фильтр для применения к перенаправлению?
  • Любые другие подходы, которые я мог бы использовать?

Благодарим за помощь.

+0

О, у меня нет той же самой проблемы, поэтому мне действительно нужно создать сценарий перенаправления? должно быть лучшее решение. –

ответ

3

Как насчет альтернативного решения, размещающего на вашем сайте www.test.com скрипт, который извлекает параметры oauth и перенаправляет ваш обратный вызов вашей схемы?

Такие, как, например, oauth.php (простите мой PHP ...)

<? 
header('Location:myschema://mythost?oauth_verifier='.urlencode($_GET['oauth_verifier']). 
    '&oauth_token='.urlencode($_GET['oauth_token'])); 
die(); 
?> 

Я успешно использовать его для Google OAuth, который имеет такое же ограничение обратного вызова URL.

+0

Спасибо. То есть подход, который я также использовал в конце. Он неуклюж, но он работает. Просто разочаровывающе добавить дополнительный переход в процесс. –

Смежные вопросы