Help us understand the problem. What is going on with this article?

TwitterAPIのApplication-only authenticationを使う

More than 1 year has passed since last update.

TwitterAPIが提供しているApplication-only authenticationという認証方式を使ってみたのでその記録を残す。

Application-only authenticationについて

TwitterAPIは、 Application-only authentication という特定のユーザの認証を必要としない認証方法を提供している。下記リンクにその詳しい説明がある。
https://developer.twitter.com/en/docs/basics/authentication/overview/application-only

ユーザの認証を必要としないので、例えば特定のクエリで検索したツイートを取得したいだけ、などのケースなどで役に立つ。
逆に言うと、ユーザのコンテキストを必要とするような情報にはアクセスできない。

使い方

base64エンコードしたBearer token credentialsを生成する

まず最初に、Twitterにアプリを登録すると発行される Consumer KeyConsumer Secret から、Bearer token credentialsというのを次のコマンドで生成する。

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

仮に、CONSUMER_KEYがaaa、CONSUMER_SECRETがbbbだとすると次のようになる。

$ echo -n aaa:bbb | openssl enc -e -base64 | tr -d "\n"
YWFhOmJiYg==

アクセストークンを取得する

次に、生成したBearer token credentialsをAuthorizationヘッダにのせてTwitterAPIへリクエストし、アクセストークンを取得する。

$ 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":"xxx.."}

TwitterAPIを使う

アクセストークンが取得できたら、あとはAuthorizationヘッダにのせてTwitterAPIを使うだけとなる。
例えば、Search APIを使うときは次のようにリクエストする。

$ curl -H 'Authorization: Bearer <ACCESS_TOKEN>' 
'https://api.twitter.com/1.1/search/tweets.json?q=hello'

以上、使ってみた記録でした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした