APIからXにポストしてみた(テキスト/画像)
API経由でXにテキストまたはテキスト+画像をポストする方法(Python)を紹介します。
この情報は2024年7月時点のものです。
前準備: API Keyの取得
取得できるAPI Keyは以下の全7種です。今回使わないものもありますが、一応すべて記録しておくことをオススメします。
Consumer API Key
Consumer API Secret
Client ID
Client Secret
Bearer Token
Access Token
Access Token Secret
取得方法は割愛しますが、そんなに難しくないです。APIで投稿したいXのアカウントでX Developer Platformにログインして、アプリ開発の画面に表示されるAPI Key達を表示して記録するだけです。以下の2つの記事を参考にすれば簡単に取得できると思います。
テキストをポストする
コードは以下の通りです。めっちゃ簡単。
import tweepy
import os
api_key = os.environ["X_API_KEY"]
api_key_secret = os.environ["X_API_KEY_SECRET"]
bearer_token = os.environ["X_BEARER_TOKEN"]
access_token = os.environ["X_ACCESS_TOKEN"]
access_token_secret = os.environ["X_ACCESS_TOKEN_SECRET"]
client = tweepy.Client(
bearer_token=bearer_token,
consumer_key=api_key,
consumer_secret=api_key_secret,
access_token=access_token,
access_token_secret=access_token_secret
)
content = "テキスト"
client.create_tweet(text=content)
自分の場合は各API Keyを環境変数に設定しているので、
api_key = os.environ["X_API_KEY"]
みたいな書き方をしていますが、よく分からない人はAPI Keyの内容をベタ打ちしても良いと思います。(他人にKeyがバレないように注意!)
テキスト+画像をポストする
テキストをポストする際に用いたのはv2 APIというやつなんですが、これだけだと画像のポストはできないようです。じゃあどうすればいいのかと言うと、以下のようにv1 APIとv2 APIを組み合わせて使用する必要があります。
# Twitter API credentials
consumer_key = os.environ["X_API_KEY"]
consumer_secret = os.environ["X_API_KEY_SECRET"]
access_token = os.environ["X_ACCESS_TOKEN"]
access_token_secret = os.environ["X_ACCESS_TOKEN_SECRET"]
# Authenticate Twitter API
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
# Create API object
api = tweepy.API(auth)
client = tweepy.Client(
consumer_key=consumer_key,
consumer_secret=consumer_secret,
access_token=access_token,
access_token_secret=access_token_secret)
# Attach image and message to tweet
message = "テキスト"
media = api.media_upload(filename="画像ファイルのパス")
client.create_tweet(text=message, media_ids=[media.media_id])
まあ別にそんな難しいことやってるわけではないです。v1 APIで画像ファイルをアップロード&メディアIDを取得して、v2 APIでテキストと合わせてポストするイメージです。
皆さんもAPIを使って快適なXライフをお過ごしください~!
この記事が気に入ったらサポートをしてみませんか?