かなり重要ですので、今回を読む前に前回のブログ記事を読んで下さい。
では、今回GoogleのOAuthを利用します。
AndroidではGoogleに限り、登録アカウントから選択する方法もあるのですが、
今回はブラウザ経由での認証の説明をしたいと思います。
まずはManifest.xmlを編集します。
AndroidManifest.xml
<activity android:label="@string/app_name" android:name=".GoogleOAuthActivity" android:launchMode="singleInstance" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!-- Intent filter for OAuth --> <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="myapp" android:host="callback"/> </intent-filter> </activity>
さて、intent-filterに新しいものが追加されています。
ブラウザからのIntentを受け取る際の決まりみたいになっています。
dataの行ですが、
schemeとhostが指定されています。
これはGoogleのOAuthが完了した際のcallbackになりますので、
変更する際は気をつけて下さい。
myappとcallbackの部分は変更して使用して下さい。
また、android:launchMode="singleInstance"
という一文が追加されています。
これを追加しないと、Intentを受け取った際に、別のプロセスになってしまいます。
どういう不都合があるかというと、callbackで受け取ったデータが、
入力したClient ID等と紐づきません。
これも決まり文句として入れておきましょう。
次に、OAuthですが、
singpostの.jarファイルを2つ使用します。
signpost-core-1.2.1.1.jar
signpost-commonshttp4-1.2.1.1.jar
の2つになります。
こちらは現在の最新版になりますが、DL時の最新版をダウンロードして下さい。
仕様が変更されていたらすいません。
この2つを使いいよいよOAuthのコード…と言いたいところですが、
GoogleからClient IDとClient Secretを発行してもらわなければいけません。
Google APIs Consoleへアクセスして下さい。
利用したいAPIの申し込みをして、Client IDとClient Secretを所得して下さい。
Client IDとClient Secretが発行されたらいよいよコーディングへ入ります。
と、いった所で次回にしたいと思います。
次回はsignpostのライブラリを利用したOAuthになります。
よろしくお願いします。
0 件のコメント:
コメントを投稿