ChatGTP SNS運用 プログラミング学習

X API活用術:Pythonスクリプトでポストの自動管理の方法

記事内に商品プロモーションを含む場合があります

プログラミングを学ぶ上で、実際に手を動かしてみることが何よりも重要です。特に、Pythonを使って現実世界で役立つスキルを身につけたいと考えている方にとって、X APIの活用は絶好のチャンスです。本記事では、Pythonを使ってX APIにアクセスし、ポストを投稿したりポストの自動化を行う方法を詳しく解説します。プログラミング初心者でも理解しやすいように、コードの説明を交えながら進めていきます。学んだスキルを即実践できるように、具体的なプロジェクトを通じてX APIの使い方を習得しましょう。

ブログ内のコードはコピーして使用できます

APIとは何か?

APIは「Application Programming Interface」の略です。簡単に言うと、APIはコンピュータプログラム同士が話すためのルールです。

APIをカフェでの注文に例えてみましょう

  • あなた(ユーザー): レストランのお客さん
  • キッチン(サービス): 食べ物を作る場所
  • ウェイター(API): あなたとキッチンをつなぐ人

レストランで食事を注文する時、あなたはウェイターに「パスタをください」と伝えます。ウェイターはそのメッセージをキッチンに伝え、キッチンでパスタが作られます。パスタができたら、ウェイターはそれをあなたに届けます。

APIはこの「ウェイター」のような役割を果たします

  • あなた(プログラム)はAPIを通じて他のプログラム(サービス)に何かをお願いしたり、情報を取り出したりします。
  • APIはそのお願いを受け取って、必要な情報を持ってきたり、指示を実行したりします。

X(旧ツイッター)のAPI活用について

X(旧Twitter)のAPIは、SNS運用やデータ分析をプログラミングを通じて強力にサポートするツールです。Pythonを使って、このAPIを活用することで、ツイートの自動化やフォロワー数の管理、さらには投稿のパフォーマンス分析まで可能になります。本記事では、X APIの基本から応用までを丁寧に解説し、プログラミング初心者でも実際に手を動かしながら学べる内容をお届けします。XのAPIを使いこなし、あなたのプログラミングスキルとSNS戦略をさらに進化させていきましょう。

XのAPIの使い方の参考

X API 公式ドキュメント

API認証方法

公式ドキュメント

X APIの取得方法

Twitter Developerアカウントの作成

  • まず、XのAPIを利用するためには、Twitter Developerアカウントが必要です。まだ作成していない場合は、X Developerにアクセスし、アカウントを作成してください。

X Developer

ユーザー認証の設定

ユーザーの認証設定についてはこのサイトがわかりやすかったです。

ユーザー設定参考サイト

APIキーとトークンの取得

APIキー取得

Bearerトークンの取得

トークンの取得

実際にAPIを活用してみよう

X APIを使った簡単なリクエストの例を、Pythonで書いてみます。これを使って、特定のユーザーの情報を取得する方法を紹介します。

まず、以下のコードはX APIのGET /2/users/by/username/:usernameエンドポイントを使って、指定したユーザーの情報を取得するものです。このエンドポイントにリクエストを送ると、ユーザーのIDや名前、プロフィール情報などが返ってきます。

必要なもの

  • Pythonがインストールされた環境
  • X APIの認証情報(APIキー、APIシークレットキー、ベアラートークン)

コード

ポイント

  1. import requests: requestsライブラリを使って、X APIにリクエストを送ります。
  2. bearer_token: ここに、X APIで取得したベアラートークンを入力します。これは、APIを使うための認証情報です。
  3. url: 取得したいユーザー名(例えば elonmusk など)を USERNAME_HERE の部分に入力します。これがリクエストを送るエンドポイントのURLです。
  4. headers: リクエストヘッダーにベアラートークンを設定します。
  5. requests.get(url, headers=headers): GETリクエストをエンドポイントに送ります。
  6. response.json(): レスポンスをJSON形式で取得し、ユーザー情報を表示します。

使い方

  1. 上記のコードをPythonファイル(例: get_user_info.py)に保存します。
  2. bearer_tokenにあなたのX APIのベアラートークンを入力します。
  3. urlUSERNAME_HEREを、情報を取得したいユーザー名に変更します。
  4. ターミナルやコマンドプロンプトでpython get_user_info.pyを実行します。

出力

ダダ
ダダ

実際にデータが出録されましたが、何を意味しているか何に使えるかなどはよくわかりませんでした。

なので、次はAPIを活用して実際に投稿をしてみようじゃないか!!
そっちのほうが、APIを使っている感はありますよね😋

X APIを使用して投稿をしてみよう

必要な準備

  1. Pythonがインストールされた環境。
  2. requests_oauthlibライブラリのインストール(以下のコマンドを実行してください)。

使用できるエンドポイント

Authentication Token のところ、もうひとつ生成できますね。Bearer Tokenです。これはドキュメントを読む限り「アプリケーション単独認証」を行うときに利用するもので、タイムラインの取得やツイート検索が行えるとありました。参考

ところが、ここにプランの話が絡んできます。ソースが見つけられませんでしたが、無料プランで呼べるAPIはおそらく以下です。

  • POST https://api.twitter.com/2/tweets ツイート投稿
  • DELETE https://api.twitter.com/2/tweets/:id ツイート削除
  • GET https://api.twitter.com/2/users/me 認証ユーザーの情報を取得

つまりツイートの検索はできません。無料のアプリケーション単独認証ではほとんど何もできない説が浮上しています。

引用元:Zenn

X(旧ツイッター)へ投稿コード

ポイント

  1. 認証情報の設定:
    • api_keyapi_key_secretaccess_tokenaccess_token_secretに、X APIの認証情報を入力してください。
  2. OAuth 1.0a 認証の設定:
    • OAuth1を使用して、X APIにリクエストを送るための認証を設定します。
  3. ユーザー情報の取得:
    • https://api.twitter.com/2/users/meエンドポイントを使用して、認証されたユーザーの情報を取得します。成功すれば、ユーザーIDが取得できます。
  4. ツイートの作成:
    • https://api.twitter.com/2/tweetsエンドポイントを使用して、新しいツイートを作成します。成功すれば、ツイートIDが返されます。
  5. ツイートの削除:
    • https://api.twitter.com/2/tweets/:idエンドポイントを使用して、作成したツイートを削除します。削除が成功すれば確認メッセージが表示されます。

出力

実際の投稿

ダダ
ダダ

無事にできて良かったです😆

ここまでに、だいぶん苦労しました。
よく出てきたエラーがこれ

現在のAPIアクセスレベルではツイートの投稿が制限されていることを示しています。

注意点

  • 認証情報の管理: 認証情報は安全に保管してください。
  • レート制限: APIにはリクエスト数に対するレート制限があるため、制限を超えないように注意してください。

主な原因

  1. 現在のAPIアクセスレベルが制限されている:
    • 無料プランや低レベルのAPIアクセスでは、POST /2/tweetsエンドポイントが利用できないことがあります。エラーメッセージにある通り、アクセスできるエンドポイントが制限されています。
  2. アクセスレベルの制限:
    • 無料プランでは、主に読み取り専用のエンドポイントにアクセスでき、ツイートの作成や削除などの書き込み操作は制限されていることが多いです。

どれなら、使えるポイントなのかを探すのに苦労しました。。。

Pythonスクリプトで自動的にポストを実行する方法

自動的にツイートするための方法を紹介します。
Pythonスクリプトを定期的に実行する方法ついて説明します。

time.sleepを使用して定期的に実行

この方法では、スクリプト内でループを使用し、time.sleep関数を使って一定時間ごとにツイートを自動投稿します。

必要な準備

  1. keyboardライブラリをインストールします。以下のコマンドを実行してください。

Pythonスクリプトで自動的にポスト

同じ内容を投稿しようとするとエラーが出るので注意しましょう

ポイント

  1. keyboardライブラリを使用:
    • keyboardライブラリを使用して、特定のキー入力(例: Ctrl + C)を検出し、ユーザーがスクリプトを手動で終了できるようにします。
  2. try-except-finallyブロック:
    • try-except-finallyブロックを使用して、プログラムの正常終了を管理します。
    • Ctrl + Cが押された場合、KeyboardInterrupt例外が発生し、プログラムはexceptブロック内で終了します。
    • finallyブロックでは、終了時に必要なクリーンアップ処理を行うことができます。
  3. 終了時のメッセージ表示:
    • Ctrl + Cが押されると、プログラムが終了する際にメッセージを表示します。
  4. ツイート候補リスト:
    • 複数のツイート候補をリスト tweets にまとめました。各投稿は異なる内容で、重複投稿を防ぎます。
  5. ランダムにツイートを選択:
    • random.choice(tweets)を使用して、ツイートリストからランダムに1つのツイートを選びます。
  6. 投稿間隔と回数:
    • メインループで for _ in range(3) を使って、3回だけツイートを実行するように変更しました。
    • 各ツイートは time.sleep(60) を使って、1分(60秒)ごとに投稿されます。

出力

1分後

更に1分後

注意

無料プランでのレート制限

  • ツイート作成(POST /2/tweets): 15分あたり50リクエスト。
  • ツイート削除(DELETE /2/tweets/): 15分あたり50リクエスト。

具体的な間隔の設定

  • 1ツイートごとに1分(60秒)以上の間隔を開けることをお勧めします。これにより、レート制限に達するリスクを回避できます。

時間を指定したポスト投稿

Pythonで指定した時間にツイートを投稿することが可能です。これを実現するには、datetimeモジュールを使って現在の時間をチェックし、指定された時間になるまで待機するようにスクリプトを設定します。

指定時間にツイートを投稿する

ポイント

指定された時間まで待機 (wait_until):

  • wait_until関数は、指定した時間 (target_time) になるまでループを回して待機します。
  • current_timetarget_timeと一致したときにauto_tweetを呼び出し、ツイートを投稿します。
  • 現在の時間は30秒ごとにチェックします (time.sleep(30))。

使用例:

  • target_timeに指
  • 間(例: "15:30")になるまで待機し、その時間にツイートを投稿します。

finallyブロック:

  • プログラムが終了する際に、終了処理やクリーンアップを行うためのメッセージを表示します。

現在の時間を表示:

  • 現在の時間を表示して、指定された時間までどのくらい待機しているかを確認できるようにしました

出力

実際の投稿

コードの時間は変更してやっています😋

まとめ

今回の記事では、Pythonを使ってX APIを活用する方法について解説しました。X APIを使いこなすことで、SNS運用の効率化や自動化が可能になります。プログラミング初心者でも挑戦できるよう、基本的なリクエストからツイートの自動投稿までを丁寧に説明しました。

このスキルを身につけることで、日常的なSNS管理がより簡単かつ効果的になります。あなたもこの機会にX APIの活用に挑戦し、SNS戦略を一歩進化させてみませんか?この記事をきっかけに、プログラミングの楽しさと可能性を広げていきましょう。

もしわからないことがあれば、このブログやXに質問等を投げていただければと思います。また、コミュニティもやっっているのでそちらから質問を投げていただいても大丈夫ですよ!!

Xのアカウントはこちら

ダダのアカウント

Discordコミュニティ

ハピッツカフェ

プログラミングを視覚的に理解したい方やプログラミングで絵を書いてみたい方はUdemyで講座も作っているのでこちらも参考にしてみてください

Udemy講座

Processing Python講座

ChatGPTでPythonの学習を始めてみたい方は以下の記事を参考にしてみてください

ChatGPTはプログラミングの学習はできても、人のつながりまでは作ってくれません。
プログラミングの学習だけではなく、人との繋がりを作ってくれるスクールもオススメです。
気になる方は無料相談からでも体験してみてください!!

テックアカデミー無料メンター相談

-ChatGTP, SNS運用, プログラミング学習
-, , , , , , , ,