2010年8月8日日曜日

AndroidでTwitter認証にOAuthを使う方法(導入編)

【セルフPR】
・ねこぱβ(http://cat.picparks.com
・いぬぱβ(http://dog.picparks.com
も見てくれると嬉しいです。

---

Androidアプリ開発に関する日本語での情報が少ないな、と本当に思った。

AndroidでTwitterクライアントを作ってみようとすることは多いと思うけど、
どれもXAuth使うとかrequest_tokenとrequest_token_secretをベタ書きするとか。

なので、Twitter認証でOAuthを使う方法を残しておくことにした。

どうせ作るなら、多くの人に使って欲しいと思うのは当然。
なので、その機会を失う要因(実装断念、セキュリティ不安等)は、
できうる範囲で排除したい。

その前にまずは導入編として、OAuthやXAuthやTwitterアプリについてまとめ。
既に理解しているのであれば、実践編へどうぞ。


1.OAuthとXAuth
両者の大きな違いは、認証のためのID/パスワードを入力する場所が、
Twitterのサイトか自作アプリかということ。
前者がOAuthで後者がXAuth。

2.OAuthのメリット・デメリット
■メリット
・認証をTwitter側でやるので、ユーザーにとって安全性が高まる。
・Twitterサポートに連絡なしで使える。

■デメリット
・アプリからブラウザを介して、Twitterとのやり取りを2往復する処理が厄介。
特にWebアプリじゃない場合は、ブラウザ上の認証完了で得られる、
request_tokenとrequest_token_secretをアプリに戻す処理が面倒。

3.XAuthのメリット・デメリット
■メリット
・アプリから直接Twitterと1往復だけやり取りをするだけで認証完了。

■デメリット
・Twitterサポートに連絡して、アプリの概要等の説明が必要。
・セキュリティに関して、ユーザーが不安を抱く。
(少なくとも僕は、アプリにパスワードが保存されてないか不安になる。)

一応XAuthでの実装もやってみた上での考えとして、絶対にOAuthで実装すべき。
(XAuthの実装例もいずれ公開します。)

実践編はまた今度。
このエントリーをはてなブックマークに追加