こんにちは!今回は、Node.jsとOpenAIのAPIを利用して、X(旧Twitter)のボットを作成しました。
作成に至った経緯
SNS運用のアルバイト経験から感じた効率化の必要性: 私は大学時代、Twitter運用のアルバイトをしていた経験があります。その中でいいね周りを手動で行うことが多く、手作業では非効率的だと感じていました。これを自動化してみたいなと思い、botの作成に至りました。APIの活用を通じてフロントエンドエンジニアとしての知識をつけたい: 筆者は2025年の4月に新卒で自社開発の企業に入社予定であり、エンジニアとしての知識がまだまだ浅いのでAPI関連の知識を身に付けたいと思い勉強も兼ねて作成したいと思いました。
用意するもの
- Twitterアカウントと開発者用のアカウント(APIの取得のため)
- Open AIのAPI(無料)
- Node.jsとnpmのインストール
プロジェクトの立ち上げ方
npmのインストール
Node.jsを立ち上げるための実行npm init -y
twitのインストール
Twitter APIと通信するために、2つのライブラリをインストールします。npm install axios twit
Twitter APIの取得&設定
Twitter APIは、Twitterの開発者ポータルから取得することができます。有料のプランもありますが、無料のプランでもAPIを取得し、botを作成することが可能です。
Twitter APIを利用するために取得必須のトークン
- consumer Tokens--API key
- consumer Tokens--API secret key
- Authentication Tokens--Access token
- Authentication Tokens--Access secret token
Twit を利用するために、取得した consumer_key、consumer_secret、access_token、access_token_secret を設定します。
特定のキーワードをいいねする実装
特定のキーワードを含むツイートを取得するためには、twitter-api-v2ライブラリのsearchメソッドを使用します。
例えば、「ChatGPT」というワードを自動的に読み込み、いいねを押す実装がしたい場合は以下のようなコードになります。
search.js
const { TwitterApi } = require('twitter-api-v2');
// Twitter APIの情報
const twitterClient = new TwitterApi({
appKey: 'APIキー',
appSecret: 'APIシークレットキー',
accessToken: 'アクセストークン',
accessSecret: 'アクセストークンシークレット',
});
// 特定のキーワードでツイートを検索し、結果を取得するメソッド
async function searchTweets(keyword, count = 10) {
try {
// キーワードでツイートを検索
const searchResults = await twitterClient.v2.search(keyword, { max_results: count });
// 結果のツイート数をログに出力
console.log(`Found ${searchResults.data.length} tweets for the keyword "${keyword}"`);
// 検索結果を表示
for (const tweet of searchResults.data) {
console.log(`@${tweet.author_id}: ${tweet.text}`);
}
return searchResults.data; // ツイートのデータを返す
} catch (error) {
console.error('Error searching for tweets:', error);
}
}
//chatGPTで検索するメソッド
searchTweets('chatGPT', 10);
コードの実行
すべての準備が整ったら、次のコマンドをターミナルで実行してコードを実行します。
node index.js