LoginSignup
17

More than 3 years have passed since last update.

Twitter APIで使うBearer Tokenの取得方法

Last updated at Posted at 2020-02-11

Twitter APIを使うのにOAuth 2.0仕様の認証方式を試してみた。その際に必要となるBearer Tokenの取得方法が若干面倒だったので書き残しておきます。

auth-5.png.img.fullhd.medium.png

認証まわりの詳しい仕様は公式ドキュメントを読んでください。
Application-only authentication — Twitter Developers

以下、Twitter Developersにアプリ登録済みで、開発環境はMac前提での解説です。

Bearer Token credentialsを生成する

Twitter Developersの[Apps] -> 対象アプリの [Details] -> [Keys and tokens] にアクセスし、Consumer Key(API key)Consumer Secret(API secret key) を取得します。

取得したConsumer KeyConsumer Secret:(コロン)で連結し、Base64エンコードをかけます。

$ echo -n <CONSUMER_KEY>:<CONSUMER_SECRET> | openssl enc -e -base64 | tr -d "\n"

前述のコマンドを叩くと、以下のようなBearer Token credentialsが生成されます。

eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==

Bearer Tokenを取得する

先ほど生成したBearer Token credentialsを使って、Bearer Tokenを取得します。
TwitterのPOST oauth2/tokenにリクエストを投げます。

$ curl -X POST \
       -H "Authorization: Basic <BEARER_TOKEN_CREDENTIALS>" \ 
       -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" \ 
       -d "grant_type=client_credentials" \ 
       "https://api.twitter.com/oauth2/token"

リクエストが成功すると、以下のようなレスポンスが返ってきます。

{"token_type":"bearer","access_token":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2FAAAAAAAAAAAAAAAAAAAA%3DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}

access_token キーの値がBearer Tokenです。

Twitter APIでBearer Tokenを使う

実際にTwitter APIで使う際は、取得したBearer TokenAuthorizationヘッダに含める形となります。

$ curl -H "Authorization: Bearer <BEARER_TOKEN>" \ 
    "https://api.twitter.com/1.1/statuses/show.json?id=1218693176170434560" | jq

基本的な流れは公式ドキュメントの手順通りですが、具体的なコマンドの記載がなかったため地味に苦戦しました。
Application-only authentication — Twitter Developers

ちなみにcurlでサクッとAPIのJSONレスポンス見る際は、jqコマンドが大変便利です。未導入の方はぜひインストールしてみてください。
jqコマンドでcurlのJSONレスポンスを見やすくする - Qiita

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17