Twitter API v2でのBot作成手順…Node.jsの場合

Twitter改めXになったのが2023年ごろ

その時Twitter APIも有料化されました。
とはいえ無料プランでもそこそこ使えます。

▼ 無料プランはこういう内容

  • 月当たり1500件まで投稿可能
  • 日当たり50件まで投稿できる
  • Botくらいなら作れそう…?

ということでBot作成を試してみました。

Node.js+Twitter API v2の手順を紹介します。

1.非スタンドアロンなTwitterアプリ作成

既にTwitter Developersを申請した前提で話します。

URL : https://developer.twitter.com/en/portal

Botを作るにはTwitterアプリが必要です。

その時、以下の点に注意してください。

  • スタンドアロンな状態ではダメ
  • 必ずプロジェクトに所属させること

これを忘れるとBotが動きません。

アプリがスタンドアロンであるか確認するには、 Projects & Apps => Overview のページを開いて Standalone Apps を見てください。そこに何も表示されてないならOKです。

▼ こういう状態ならOK

Projects Overview のページを開いて Standalone Apps に何も表示されてないならOK。

アプリは必ずプロジェクトに所属させてください。

▼ 例えば以下のように

Twitterアプリを作るときは必ずプロジェクトに所属させること

上記画像では Prime number bot というプロジェクトを作成し、その下に Prime number bot というアプリを作成しました。これで Twitter API v2 へのアクセスが可能です。

Bot作成前の注意点はこれだけ

2.必須モジュールをnpmインストール

Node.jsでTwitter Botを作る場合…

必須となるモジュールは以下の通りです。

▼ 最低限必要なもの

  • axios
  • needle
  • oauth-1.0a

▼ npmからインストール

POSTリクエスト送信にaxios使います。
これは他モジュールでも代替可能です。

3.API key & API secret を定義

ここからNode.jsでのコード的な話です。

※ 全体コードは最後にまとめる

以下の2つを取得・定義します。

  • API key (Consumer key)
  • API secret (Consumer secret)

Twitter開発者ポータルからAPI key (Consumer key)・API secret (Consumer secret) を確認する

Twitter developerページから作成したアプリを開き Keys and tokens をクリック。そこに Consumer Keys があって Regenerate ボタンを押すと再生成できます。

それをNode.js上に定義します。

▼ 実際のコード例(各自で書き換え)

あるいは環境変数を.envに定義して、
そこから取得する汎用的な書き方もできます。

▼ 環境変数から Key & Secret を取得

▼ envモジュールの使い方は次記事参照

ここまでで下準備は完了

4.トークンを要求/取得する

初めにトークンをTwitter APIに要求します。

▼ そのスニペットだけ抜き出したコード例

これは全体のコードの一部分です。

最後に全体コード掲載するので心配無用です。

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

そしたらアクセストークンを取得します。

これがTwitter APIの呼び出しに必須です。

▼ スニペットだけ抜き出したコード例

何度も書くけど、部分的なコードです。

上記コードに verifier  という変数があります。ここはTwitter APIから発行された認証URLにアクセスし、その画面に表示されたコードを入力されたものが入ります。

今は意味不明と思うけど、気にしないでください。

6.Twitetr APIからツイート送信

いよいよBotでツイート送信してみます。

▼ スニペットだけ抜き出したコード例

上記の endpointURL  は次の内容です。

URL : https://api.twitter.com/2/tweets

ここにツイートしたい内容を送ることでポストできます。でも昔ほど手軽ではなく、ここまでのようにトーク・アクセストークンの取得が必要です。

かなり面倒くさかったです(-_-;)

全体コードの掲載と実行の流れ

ということで全体コードを掲載します。

▼ これがBot作成コードの全体コード
▼ 名前は index.js などとする

肝心なのはアクセストークン取得です。

上記コードだと oAuthAccessToken  がそれですね。これは繰り返し使えるので、実際の運用ではファイル・メモリなどに記憶させれば次回から認証なしでツイートできます。

重要なのはそこくらいかな

実際にBotをテスト実行してみた

実際に上記スクリプトを動かしてみます。

▼ index.jsを実行

▼ PINコード入力が求められる

▼ URLにアクセスしてPINコード確認

URLにアクセスしてPINコード確認。PIN入力後にTwitterAPIが実行される

▼ PIN入力後にTwitterAPIが実行される

▼ ツイート成功!

ツイート成功!あとはCronに登録などすればBotを稼働できる

これがBot実行の流れです。

ここまで読んで「結局手動じゃない?」と思った人はよく見直してください。アクセストークンは何度でも使えるため、ファイル保存などすればBot運用できます。

Cronなどで定期実行するのが現実的かも

以上、Node.jsでTwitterボットを作りでした。

Shareこの記事をシェアしよう!

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください