1
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?

ツイートの自動投稿アプリを作成する

Posted at

はじめに

KG-7thの槙島です。

Typescript(javascriptでもほぼ同じ)のnode.jsを使って
X(旧Twitter)の自動投稿アプリを作成する方法について、記事に起こしてみます。

XのAPIはお金がかかるイメージをお持ちの方もいるかもしれませんが、
投稿するだけなら無料でできます。
悪質なBot目的でなければ積極的に活用してよいと思います

事前準備

XのAPIを利用するためには、Twitter Developer Portalでアプリを作成し、APIキーを取得する必要があります。
以下のページにアクセス>右上の「開発者ポータル」のリンクを開いて投稿したいアカウントでログインして
必要事項を入力すればOKです。
https://developer.x.com/ja
image.png

トークンを作成する

デフォルトで作成されているプロジェクトを開く
image.png

読み取りと書き込みを選択する
他の必要事項は使わないので適当に。。
image.png

image.png

Client IDとClient Secretが生成されるのでコピーして保管する(使い道は正直知らない・・)
image.png

APIキーとシークレットキーを生成する
image.png

コピーして保管しておく
image.png

Access Token と Access Token Secretを生成する
(初めて生成するときはGenerate表記になっている)
image.png

コピーして保管しておく
image.png

実装編

前提

今回はtwitter-api-v2ライブラリを使用します
https://www.npmjs.com/package/twitter-api-v2

バージョンは1.22.0を使いました。
もしうまくいかなければ、バージョンを上記に合わせてみてください。
それでもうまくいかない場合はTwitterの仕様変更ですね。。。

なお、npm initでプロジェクト作成するとかの手順は省略してます。コードだけ載せます。

認証情報を設定したインスタンスの作成

環境変数じゃなくて直接文字列を入れても動きます。

    // Twitter APIキーインスタンスを生成
    const twitterInstance = new TwitterApi({
      // APUキーを環境変数から取得
      appKey: process.env.APP_KEY!,
      // APIシークレットを環境変数から取得
      appSecret: process.env.APP_SECRET!,
      // access tokenを環境変数から取得
      accessToken: process.env.ACCESS_TOKEN!,
      // access token secretを環境変数から取得
      accessSecret: process.env.ACCESS_TOKEN_SECRET!,
    });
    // 権限はread/writeを指定
    const client = twitterInstance.readWrite;

ツイートの投稿

await client.v2.tweet("テストの投稿です!!");

画像付きツイートの投稿

    // 画像をアップロードしてメディアIDを取得
    const imageId = await this.client.v1.uploadMedia("<画像のファイルパスを指定>");
    // ツイートを行う
    await client.v2.tweet("画像付きツイートです!!", { media: { media_ids: [imageId] } });

上記を使ったプロジェクトは以下で公開してます。

以上!

参考になったらうれしいです。
節度を守ってBot運用していきましょう

1
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
1
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?