TwitterAPIにアクセスするためのトークン取得に少し手間取ったのでメモ
すでにTwitterの開発者アプリを作成していることを前提としています。
ConsumerKeyとConsumerSecretの取得
https://apps.twitter.com/app/あなたのアプリID/keys
からConsumerKeyとConsumerSecretは取得できます。
ConsumerKeyとConsumerSecretのエンコーディング
トークンを取得するためには
oauth2/token
にPOST
でリクエストをする必要があります。
しかしその際のConsumerKeyとConsumerSecretの取扱に要注意!
ConsumerKeyとConsumerSecretを:
で繋いで更にBase64
でエンコードする必要があります。
このサイトでエンコードしました
例.
ConsumerKey | ConsumerSecret | :でつなぐ | Base64エンコード |
---|---|---|---|
AAA | BBB | AAA:BBB | QUFBOkJCQg== |
oauth2/tokenに対してのリクエストのヘッダーでAuthorization
の値として必要になるのがこの例で言う、QUFBOkJCQg==
です。
実際にCurlでリクエスト
今回はさくっとCurlで取得しました。
Authorization
の値にはBasic QUFBOkJCQg==
のように値を設定します。
curl --request 'POST' 'https://api.twitter.com/oauth2/token' --header 'Authorization: Basic 上記の手順で作成した値' --header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --data "grant_type=client_credentials" --verbose
下記のようなレスポンスが帰ってきたら成功!
{"token_type":"bearer","access_token":"AAAAAAAAAAA"}
最後に
https://apps.twitter.com/app/あなたのアプリID/keys
にあなたのアクセストークンとか書いてるから最初はそれでリクエストしてみたけど、
ダメで心が一度折れました。
あとBase64エンコードせずにリクエストして心が折れました。
SNSのAPIはどこも堅牢な作りになってきているイメージですね・・・・
次回はInstagramグラフAPI触ってみたい