1
0

More than 3 years have passed since last update.

Twitter OAuth認証のコールバックURLでintent-filterが反応してくれない

Last updated at Posted at 2020-09-01

Twitter OAuth認証のコールバックで自分のアプリに制御が戻ってくれない
というハマりがあったのでメモ。


Twitterアプリ登録ページで、
コールバックURLはhttp://かhttps://で始まらなければならない、と書いてあるので
最初、存在しないURLや存在するURLを色々試したが、
intent-filterが反応しなかった。


実際には、コールバックURLは

”独自スキーマ://” 

という構文でも登録を受け付けてくれる。

Callback URL
zanapp://


次に、
AndroidManifest.xmlのandroid:hostとコールバックURLのhostが
両方とも無し、
という設定で試したが、やはり反応しない。


そこで、
アプリのソースコードで、
コールバックURLのスキーマにホスト(test)を付けてみた。

(AndroidManifest.xmlのandroid:hostとコールバックURLのhostが
 両方ともあり、の設定。)

TwitterOAuthActivity.java
mRequestToken = mTwitter.getOAuthRequestToken(zanapp://test);
AndroidManifest.xml
<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="test"
        android:scheme="zanapp" />
</intent-filter>

これでブラウザのTwitter認証からのコールバックで
アプリに制御が戻る ようになった。


独自スキーマじゃないとintent-filterが反応しない???
原因がよく分かりません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0