0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Node.jsを使ってTwitterの特定のキーワードのいいねを自動化

Posted at

こんにちは!今回は、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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?