2011年12月13日

【Android】OAuthを使用する

ブログもネタ切れっぽくなってしまい、記事の間が開いてしまって申し訳ありません。

今回はOAuthに関してです。

OAuthとは何かというのを簡単に説明すると、

1.TwitterやGoogleのアカウントからデータを取得したり、投稿したりしたい!
2.でもIDやパスワードをアプリに保存するのは怖い。

って時の為に、OAuthという仕組みが使われる事が多々あります。



OAuthはどういう仕組みかを説明しますと、

1.アカウント元のサービスへリダイレクト(この場合はTwitterやGoogle)
2.元のサービスでIDとパスワードを入力し、ユーザ認証をする。
3.利用先のサービスへリダイレクト、その際、アクセスする用のトークンを発行する
4.トークンを利用し、元のサービスを利用する

ってな手順で、元のサービスと利用先のサービスを紐づけます。
(実際はもう少し細かいです。)

利用先のサービスはアプリだったり、ウェブサービスだったりしますが、

今回(から数回)はAndroidに関して説明していこうと思います。


まず、Androidにおいて、理解しておかなければいけないのが、
[Intent]とは何かと言う事。

まぁ、私も完璧に理解している訳ではありませんが、
[Intent]を発行すると言うと、別の[Activity]が立ち上がると理解しております。
その際、どういうデータを[Intent]に紐付けるかで、立ち上がる[Activity]が変わる訳です。

例えば、[Intent]に[http://www.google.co.jp]というデータを紐付けると、
ブラウザが立ち上がります。
もしくは、[mailto://xxx@gmail.com]というデータを紐付けると、
メーラーが立ち上がります。

これがOAuthとどう関係するかというと、
callbackに指定するURLと関係します。
(OAuth利用手順の3番です。)

アプリはウェブサービスでは無いので、URLを持っていません。
しかし、このcallbackに独自のURLを指定する事で、ブラウザからのcallbackをアプリで受け取る事が可能です。

次回はGoogleのOAuthの手順でこの説明をしたいと思います。