0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GASとXAPIを使ってX(Twitter)の画像投稿BOTを作る

0
Last updated at Posted at 2025-11-05

はじめに

2026/2 追記

2026年2月より、新規にX開発者プラットフォームへ登録した方は、投稿が完全有料の従量課金制になってしまいました。
そのため、課金をして投稿のために使用するクレジットを購入していないと、完成しても投稿ができません。

GASを使用して、ドライブ内の特定のフォルダ内の画像からランダムに画像をツイートするBOTを作ろうとしたのですが、XAPIがV2に変わっていたためやり方がいろいろと変わっており、情報が混在していたため記事を作りました。

今回の記事で紹介しているものは画像のみ投稿できます。動画はまた別ですので予めご了承ください。

事前準備

(Twitter,GASは登録済前提として)

GASのプロジェクトを作成

GoogleAppScript

上記のページにアクセスし、画面右上の新しいプロジェクトを押します。

image.png

開いたページのURLが

https://script.google.com/home/projects/[スクリプトID]/edit?hl=ja

となっているので、スクリプトIDをメモ(後で使います)

XAPIの登録をする

X開発者プラットフォーム

  1. まず、上記のサイトにアクセスします
  2. 右上の開発者ポータルを押します
  3. Twitterのアカウントでログインします

画面下部のSign up for Free Accountを押します。

image.png

XのデータやAPIを何に使うか書いてくださいと言われるので、(できれば英語で)書きましょう。chatgptやgoogle翻訳を使ってもいいと思います。

その後、その下の3つのチェックを押し、Submitを押します。

image.png

Submitを押した後、数秒するとダッシュボード画面になります。これでひとまず登録は完了しました。

XAPIの設定をする

このようなダッシュボード画面が表示されていると思われます。

画面中央にあるPROJECT APPの横にある歯車ボタンを押します。

image.png

名前を変更したい場合は、右上のEditから名前を編集します。

次に、画面下部のUser authentication not set upの右にあるSet upを押します。

image.png

認証の設定をしていきます。 (required)と書かれているものは必須です。

  1. App permissionsRead and writeに設定します
  2. Type of AppWeb App, Automated App or Botに設定します
  3. App infoCallback URI / Redirect URLhttps://script.google.com/macros/d/[GASのスクリプトID]/usercallbackに設定します
  4. Website URLにご自身のWebサイトのURL(なければ適当なもの)を入力します

これら以外の入力は任意です。

入力が終わったら、画面下部のSaveを押します。

image.png

以下の画面になるので、画面下部にあるClient IDClient Secretの両方をメモしておきます。(どちらもあとで必要になります)

image.png

終わったらDoneを押し、Client Secretを保存するよう言われるのでYes,I save itを押します。

ドライブに画像をアップロードする

ドライブ上にフォルダを作成し、フォルダ内に画像をアップロードします。

フォルダを開いた状態のURLがhttps://drive.google.com/drive/folders/[フォルダID]となっているのでフォルダIDをメモしておきます。

画像形式はできればjpgを推奨します。また、サイズが大きすぎるものは今回の方法では送信できない可能性が高いです。(検証したわけではありませんが)
おそらく4MBくらいが上限と思われます。

サイズが範囲内であればgif形式も可能です。

これで事前準備は終了です。

中身を作る

中身は様々な方が書いていたコードを参考、引用したり、chatgptに聞いたりして書きましたので完全オリジナルではないことをご了承ください。

ソースコード

GitHub

リンク先のソースコードをGASにコピペしてください。

OAuth2ライブラリ導入

OAuth2.0認証を使うにあたり、ライブラリを使用します。

画面左側のライブラリの横にある+ボタンを押します。

image.png

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF これをコピペし、検索を押します。

image.png

IDとバージョンは変更せずに追加を押します。

image.png

ライブラリ欄に追加されていればOKです。

image.png

スクリプト プロパティの設定

画面左部からプロジェクト設定を押します。

image.png

画面下部のスクリプトプロパティを追加から以下の値を設定します。

  • FOLDER_ID : フォルダID
  • X_CLIENT_ID : Client ID
  • X_CLIENT_SECRET : Client Secret

image.png

初回起動

画面上部からauthorizationSettingを選択し、少し左にある実行を押します。
image.png

しばらくすると画面下部にOpen the following URL and re-run the script:[URL]と出ます。URLを開くと以下のような画面になるので、Authorize appを押して認証を完了します。

image.png

成功すると下のような画面になります。

image.png

ツイート時やメディアアップロード時に403エラーが発生する場合は、resetAuthAllを実行して一度認証情報をリセットしてから再度authorizationSettingを実行し、認証をやり直してください。

ツイートしてみる

先ほどと同じように画面上部からtweetImageを選択し、少し左にある実行を押します。
image.png

数秒でフォルダ内のランダムな画像がツイートされます。

image.png

しっかりツイートできていることがわかります。

自動化してみる(オプション)

今回はGASのトリガー機能を用いて投稿を完全に自動化してみました。

左部のメニューからトリガーを選択します。

image.png

画面右下のトリガーを追加を押します。

実行する関数をtweetImageに設定し、定期的にツイートする場合は時間主導型を選択し、任意の時間間隔を選択します。

image.png

Free Planの場合、APIを用いて1日に投稿できる上限数は17回なのでご注意ください。

さいごに

BOTを作るにあたり色々調べましたが、TwitterのBOTという母数が多そうなコンテンツの割には、日本語の情報が意外と少なく、少し苦戦しました。

動かない、ここはこうしたほうがいい、記事が間違っている等ありましたらコメントもしくはPRお願いします。

今回の記事の方法で作ったBOTがこちらになります。興味のある方はご覧ください。

参考資料

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?