Vibe Coding実践例:PythonでX(旧Twitter)に投稿する注意点とサンプルコード

基礎知識

前回までに、RSSフィードから記事を取得し、要約を生成するコードをVibe Codingで作成してきました。

ここからは、その生成結果をもとに、PythonからX(旧Twitter)へコメントを自動投稿する処理を拡張していきます。

本記事では、まずPythonからXにAPI経由で投稿する最小構成を、ChatGPTの支援を使って実装します。

PythonでXに投稿する方法

ChatGPTにPythonからXへ投稿するコードの生成を依頼し、その出力結果をベースに実装を進めます。

PythonからXに投稿するコードを書いてください。

この指示でTweepyの最新v2ベースのクライアント(tweepy.Client)を使った投稿サンプルが出力されました。

OAuth 1.0a方式で認証し、投稿する方式が取られており、認証情報は環境変数の設定を使うコードとなっています。 …の部分を実際のキー・トークンに置き換えて、環境変数として設定してください。

下記はbashシェルでの例です。

export X_API_KEY="..."
export X_API_SECRET="..."
export X_ACCESS_TOKEN="..."
export X_ACCESS_TOKEN_SECRET="..."

bashシェルの場合は source コマンドで読み込めば反映されます。OSやシェルごとの環境変数設定方法は、ChatGPTに確認すると最新の手順を案内してくれます。 コードに直接記述して試すことも可能ですが、セキュリティ上のリスクがあるため避けたほうが無難です。

import os
import tweepy

client = tweepy.Client(
    consumer_key=os.environ["X_API_KEY"],
    consumer_secret=os.environ["X_API_SECRET"],
    access_token=os.environ["X_ACCESS_TOKEN"],
    access_token_secret=os.environ["X_ACCESS_TOKEN_SECRET"],
)

response = client.create_tweet(text="Hello X! v2 APIから投稿 🚀")
print("Posted:", response.data["id"])

X APIの詳細は割愛しますが、このコードは、v2 APIエンドポイントを利用してテキスト投稿を行うものです。 Python内のクライアントが適切に認証された状態で投稿リクエストを送ります。

生成されたコードの注意点

X APIのような認証を必要とする外部サービスの利用では、クレデンシャル情報の管理が重要です。

ChatGPTは、セキュリティ関連は慎重に扱うよう促してくれるので、キーやトークンの取り扱いについても質問してみると良いでしょう。

X APIについてのChatGPTの説明

X APIの利用には、事前にアカウントへの適切なAPI権限の設定が必要となります。

X Developer Portalは英語のため、ChatGPTに相談して進めると便利ですが、用語などは古い情報を案内がされることがあります。 そのまま画面のキャプチャやコピペを1つずつ見せれば、最新情報で改めて説明してくれますので、説明と異なる状況でも諦めずに質問を繰り返すと良いでしょう。

テスト用アカウントの準備

Xの投稿は、仕様上そのまま公開されます。テスト投稿にはテスト用アカウントを使う方法がおすすめです。 開発用に 完全に別のXアカウント を作成しそのアカウントで投稿テストを行う方法です。

本番アカウントを汚さず、API制限や凍結リスクを分離しながら、実運用と同じ条件でテストできる点がメリットです。

プラン選択について

アカウント登録時のプラン選択を相談したところ、有料のBasic/Proを勧めてきます。

もちろん有料プランを利用してもOKですが、個人の利用規模なら無料プランの制限枠で収まる場合が多いでしょう。

無料プランの存在について質問すると「Freeプランでは自動投稿はできない」というハルシネーションを起こしました。下記のように実在の記事のURLが紹介されますが、リンク先にそのような記述はなく、むしろ反対の正しい情報がありました。その後、Webの調査を指示しても誤った情報を返し、こちらがソースを提示するまでChatGPTはその主張を取り下げませんでした。

X DevelopperアカウントのFreeプランに対するハルシネーションの例

これは今回の環境でたまたま起きた事象かもしれませんが、Xのような有名なサービスでもハルシネーションが起こることは注意が必要です。有名サービスについては一般に情報の精度が高いのですが、AIの回答を鵜呑みにせず、仕様を確認する重要性を再確認しました。

OAuth 1.0a vs OAuth 2.0

tweepyを使ってPythonからXへ自動投稿する用途では、現時点ではOAuth 1.0aが最も安定しています。 OAuth 2.0は将来性はあるものの、投稿用途では制約が多く、認証や閲覧向けの用途が中心です。

キーとトークンの扱い

コードを出力してもらう際に、キーやトークンを貼り付ける操作は注意が必要です。 ChatGPTはクラウドサービスのため、第三者にキー情報が見える可能性があり、下記のような警告が表示されます。

⚠️ 重要
今あなたが貼っている Client Secret / Access Token / Access Token Secret は第三者に見える状態 です。
このままではアカウントを乗っ取られる可能性があります。
→ すぐに X Developer Portal で再発行(Rotate)してください。

その上で、安全な形(環境変数)で使うPythonサンプルを書きます。
※ コードに直接キーは書きません

手作業が発生しますが、ここは安全とのトレードオフのためChatGPTの提案に従うほうが良いでしょう。

まとめ

PythonからXに投稿するには、TweepyとX APIの正しい設定が必須です。

ライブラリの導入と環境変数の設定、適切な権限付与を行うことで、プログラムからの投稿が可能になります。

本記事のサンプルコードを起点に、自動投稿やBot構築へと発展させていくことができます。

タイトルとURLをコピーしました