最近Twitter関連の作業が多く、OAuthという認証方式を使って、
プログラムをTwitterと連携させているのですが、
この認証の仕組みを知らない人も多いようなので簡単に流れを紹介します。
1.Program用の認証キーと秘密認証キーを取得する
まず最初に必要なものがConsumer_KeyとConsumer_Secret_Keyと呼ばれる、
プログラムをサービス先と連携するために必要な鍵です。
この鍵は認証を行いたいサービスから取得します。
※Twitterの場合は、ログイン後のユーザ設定画面にある、
開発者向けのページでプログラムの申請を行うと取得できます。
2.アクセスURLを取得
ユーザがプログラムにアクセスしたタイミングで、
サービス先にConsumer_KeyとConsumer_Secret_Keyを渡して、
Request_Token、Request_Token_Secretという一時的な鍵を取得します。
この2つの鍵は毎回取得が必要で使い捨てとなります。
取得したRequest_TokenとRequest_Token_Secret、
Consumer_Key、Consumer_Secret_Keyを用いて、
URLを作成してユーザをサービス先の認証画面へ誘導します。
3.ユーザ認証(ユーザの同意)
ユーザが誘導されたサービス先の画面で認証及び同意を行うと、
サービス先はプログラムにユーザをリダイレクトします。
その際に仮の認証鍵としてoauth_verifierという値が渡されます。
プログラムはこの値とRequest_Token、Request_Token_Secretを、
サービス先に提示して認証の確認を行います。
正しい認証が行えていた場合は、
サービス先からAccess_TokenとAccess_Token_Secretが返ってきます。
この2つの鍵がユーザの権限を用いてプログラムがサービス先にアクセスするために、
必要になる本認証鍵となります。
この2つの鍵とConsumer_Key、Consumer_Secret_Keyの4つを使って、
サービス先のAPIからデータの取得を行うことが出来ます。