🍣 PythonでTwitter APIを叩いてユーザー情報を取得する
作成日: 2022/05/07
0

ネットにあった情報が古い tweepy のものばかりで、あまり思い通りに動かなかったので、シンプルに叩いたメモ。

Twitter API v2で Bearer認証しています。
叩いているAPIは GET /2/users/by/username/:username です。
https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username

Bearerトークンは、各自でTwitter Developer Portalにて取得してください。
https://developer.twitter.com/en/portal/dashboard

import requests

def get_twitter_data(twitter_username):
  api_url = "https://api.twitter.com/2/users/by/username/" + twitter_username
  token = "【取得したBearerトークンをここにいれる】"
  params = {
      "user.fields": "description,profile_image_url"
  }
  headers = {
    "Authorization": "Bearer " + token
  }
  response = requests.get(api_url, params=params, headers = headers)
  response_data = response.json()["data"]

  print(response_data)

get_twitter_data("kaitou1192")

地味にハマったのがQuery parametersの箇所。
指定しないと user.fieldsid name username しか取れません。

例によって老人会のお話ですが Twitter API v1.1 だとイージーに取れていた記憶があるので、それに惑わされていましたが、解説ページの Example requestscURL (OAuth 2.0 User Access Token optional fields)Example responsesOptional fields にちゃんとサンプルが書かれていますね。失敗。
https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-by-username-username

サンプルコードのkaitou1192はわざと残してあります。
よかったら友だちになってください。 😎


本業はコードを書かせてもらえないフロントエンドエンジニアです。 こんなサービス作っています。 https://lp.re-shine.jp