いつも忘れるのでメモ。
consumer_key consumer_secret を利用して
https://api.twitter.com/oauth/request_token
へリクエストする。
method: POST
Headers:
Authentication: OAuth oauth_consumer_key="<key>",oauth_signature_method="HMAC-SHA1",oauth_timestamp="<unixepoctime>",oauth_nonce="<randomstring>",oauth_verson="1.0",oauth_callback="oob",oauth_signature="<signature>
param:
oauth_verifier=oob
ここでsignature
は
HMAC-SHA1 で作る。
鍵は <consumer_secret>&
データはmethod, url, oauth paramとparamをキーで昇順ソートしたもの をそれぞれURLエンコードし
encoded_method&encoded_url&encoded_param
のようにしたもの。
さらに作ったsignatureはURLエンコードする。
認証用のoauth_token, oauth_token_secret がもらえるので
https://api.twitter.com/oauth/authorize?oauth_token=<token>
へ接続し、Authorize appボタンを押すとPINがもらえる。
method: GET
https://api.twitter.com/oauth/access_token
へ oauth_token, oauth_secret, PIN を利用してリクエストする。
method: POST
Headers:
Authentication: OAuth oauth_consumer_key="<key>",oauth_signature_method="HMAC-SHA1",oauth_timestamp="<unixepoctime>",oauth_nonce="<randomstring>",oauth_verson="1.0",oauth_callback="oob",oauth_signature="<signature>,oauth_token="<token>"
param:
oauth_verifier=<PIN>
oauth_tokenとoauth_token_secretがあるので、これを利用する。
signature は鍵が <consumer_secret>&<oauth_token_secret>
になる。
ユーザの oauth_token, oauth_token_secret が手に入る。最初にもらったoauth_token,oauth_token_secretはユーザ認証用なのでもういらない。
以後はユーザのtokenとアプリのconsumerキーでリクエストの度に上記のようなことをやる。