GAS活用!X(旧ツイッター)への定期ポスト(ツイート)を自動設定する方法【コピペOK・ソースコード付き】

GAS(Google Apps Script)講座

今回は、X(旧ツイッター)のAPIとGAS(Google Apps Script)を利用して、ポストを自動投稿するツールの作成方法をご紹介します。

「このツールは、X(旧ツイッター)に定期的に自動投稿をしたい方や、Googleスプレッドシートを使ってシンプルなシステムを構築したい初心者向けの内容です。

ツール開発が初めての方にもわかりやすいよう、ステップごとに詳細な解説とサンプルコードを提供しています。手動で行うと時間がかかる投稿作業を自動化し、効率的にSNSを活用するためのスキルを身につけましょう。

\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き

X(旧ツイッター)のAPIを利用すれば自動的にツイートが可能!

X(旧ツイッター)への投稿を自動化したい場合は、Xが提供しているAPIの利用がおすすめです。

X(旧ツイッター)のAPIは、利用すればプログラムでポストを投稿が可能になります。

プラン別の機能

X(旧ツイッター)のAPIは、3つのプランのいずれかを契約して利用できます。

利用目的に合わせてプランを選択しましょう。

各プランの機能は、以下。

無料プラン ベーシックプラン Proプラン
月額費用 無料 100ドル 5,000ドル
可能な操作 Xへのログイン

自身のプロフィール情報の取得

投稿、削除

無料プランで可能な操作

フォロー、フォロー解除

ポスト、リポスト、いいね、ブックマーク

などXにて行える操作全般

ベーシックプランで可能な操作

リアルタイム投稿のデータ収集

制限 1,500ツイート/月まで投稿

APIを利用できるアプリ 1つまで

3,000ツイート/月まで

APIを利用できるアプリ 2つまで

ツイート検索は、7日間まで

1,000,000ツイート/月まで

APIを利用できるアプリ 3つまで

ツイート検索は、7日間まで

GASで定期ツイートツールを作ってみよう

今回はGAS(GoogleAppsScript)とX(旧ツイッター)のAPIを活用して自動投稿ツールを作っていきます。

今回開発するツールは、以下のようなツールとなります。

・スプレッドシートに記載されている文章をポストする。

・複数の文章が記入されている場合は、ランダムで1つ選んで投稿する。

・投稿履歴を履歴シートに記録する。

まずは、事前準備としてスプレッドシートの作成とAPIの取得を行います。

事前準備:自動ポスト用スプレッドシートを作成

投稿メッセージを記入したり投稿内容を表示するためのスプレッドシートを作成していきます。

Googleドライブにアクセス

ウェブブラウザからGoogleドライブ(https://www.google.com/intl/ja_jp/drive/)にアクセス。

「ドライブを開く」を押します。

ログインしていない場合は、Googleアカウントでログインしてください。

ドライブを開くと画像のような画面になります

スプレッドシート新規作成

新規ボタンをクリックしてスプレッドシートを選択します。

列名とファイル名を設定

入力しなくてもスクリプトは動きますが見やすいように表題の設定とファイル名、シート名を変更しておきましょう。

ファイル名は、「タスク登録用スプレットシート」。

シート名は、「投稿メッセージリスト」、「履歴」とします。

この作成したスプレットシートのスプレッドシートIDを取得しておきましょう。

スプレッドシートIDは、URLの以下の部分です。

https://docs.google.com/spreadsheets/d/スプレッドシートID/edit

事前準備:APIの取得手順

まず初めに事前準備として、X(旧ツイッター)のAPIキー(Client ID、Client Secret)を取得する必要があります。

取得は、以下の手順で実施してください。

X Developer Platform(https://developer.twitter.com/en/apps)にアクセス。

ポストを行いたいXアカウントでログインします。

初回は、アカウント認証を求めらますので指示に従いましょう。

「Create an App」を押します。

確認メッセージが表示されたら「Apply」を押します。

画面下に表示されている文章は常に表示されるので、Acceptを押してください。

内容はこちら

This page and certain other Twitter sites place and read third party cookies on your browser that are used for non-essential purposes including targeting of ads. Through these cookies, Google, LinkedIn and Demandbase collect personal data about you for their own purposes. Learn more.

このページおよび他の特定のTwitterサイトでは、広告のターゲティングを含む非本質的な目的で使用されるサードパーティのCookieをお客様のブラウザに配置し、読み取ります。これらのCookieを通じて、Google、LinkedIn、Demandbaseは、独自の目的のためにお客様の個人データを収集します。詳しくはこちら。

APIプランの選択します。

今回は無料版を選択します。

ポリシー合意と利用目的を記入する画面が表示されます。

ちなみに翻訳すると以下のとおり。

Basic Pro New X’s v2 API Xの強力なv2 APIエンドポイントを使ってビルドする

書き込み月間3,000投稿 月間3,000投稿まで投稿可能

読み込み: 10,000件/月 10,000件/月までの投稿の取得

より高いレベルのアクセスが必要な場合は、こちらをクリックしてお問い合わせください。

ベーシックに申し込む

無料アカウント登録

 

チェック項目にチェックいれるのと、利用目的を英語で250文字以上で入力しましょう。

今回は次の内容で入力しました。参考にしてください。

私の言葉を発信する目的で、Twitter APIのツイート機能を利用します。具体的には、スプレッドシートに保存されたコンテンツからランダムに1つを選び、24時間ごとに自動でツイートするTwitter BOTを利用します。このBOTはツイートのみの機能を提供し、リツイートやいいね、Twitterアカウントやコンテンツの分析、またTwitterコンテンツをTwitter以外で表示することは行いません。

I am using the Twitter API’s tweet functionality to express my words. Specifically, I will use a Twitter bot that selects one random item from a spreadsheet and tweets it automatically every 24 hours. This bot only uses the tweet feature and does not use retweet, like, analyze Twitter accounts or content, nor display Twitter content outside of Twitter.

APIの登録は英語で行います。

 

下のチェックの意味はこちら。

You understand that you may not resell anything you receive via the Twitter APIs
Twitter APIを通じて受け取ったデータを転売することはできないことを理解しています

You understand your Developer account may be terminated if you violate the Developer Agreement or any of the Incorporated Developer Terms
デベロッパー契約や関連するデベロッパー規約に違反した場合、デベロッパーアカウントが停止される可能性があることを理解しています

You accept the Terms & Conditions
利用規約に同意します

完了するとトップ画面に移動します。

「Projects & Apps」→「18XXX・・・・などの数字の羅列」→「Set up」を押します。

次はAPIの設定をします。

App permissionsは、「Read and write」を選択。(読み書き 投稿とプロフィール情報)

Type of Appは、「Web App,Automated App or Bot」を選択します。(ウェブアプリ、自動化アプリ、ボットコンフィデンシャルクライアント)

 

続いてAppinfoの設定箇所は、CallBack URL/Redirect URLには、以下の情報を入力します。

スプレッドシートIDは、先程作成したスプレットシートIDを使います。

https://script.google.com/macros/d/スプレットシートID/usercallback

WebSite URLには、以下のURLを記載します。

https://x.com/prtnblog_info

記入ができたら「Save」を押します。

確認メッセージが表示されるので「Yes」を押します。

OKを押すとClient IDとClient Secretが表示されます。

忘れないように保管しましょう。

コールバックURLが無効です。使用されている文字を確認してください。
というエラーが出た場合はコールバックIDを見直しましょう。

※Client IDは、他で表示できないので忘れないようにメモしておきましょう。

コピーが完了したら「Done」を押してください。

Save your OAuth 2.0 Client Secretの画面に表示されるClient Secretは前画面に表示されたものと同じです。

必要に応じてコピーしましょう。

「Yes, I saved it」を押して画面を閉じましょう

これでAPIキーの取得は完了です。

認証用ライブラリ(OAuth2)追加

X(旧ツイッター)のAPIを利用するためには、OAuth2という認証用のライブラリを追加する必要があります。

先程作成したGoogleスプレッドシートにて拡張機能-AppsScriptをクリックします。

AppScript画面に切り替わります。

こちらの画面説明は、後ほど行います。

画面左のサイドメニューから「ライブラリ」を押します。

「スクリプトID」に以下のIDを入力します。

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

「検索」を押してOAuth2が検索できたら「追加」を押します。

ライブラリにOAuth2が追加されていれば成功です。

「承認が必要です」がでたら承認しましょう。

 

自動ポストスクリプト作成

GoogleAppsScriptにプログラムを記述していきます。

先程作成したGoogleスプレッドシートにて拡張機能-AppsScriptをクリックします。

AppScript画面に切り替わります。

まずは、簡単にAppsScript画面についてご説明します。

1.プロジェクト名

クリックすると変更できます。

2.スクリプトファイル

プロジェクトに配置されているスクリプトファイルを確認できます。

各項目横の+ボタンを押すことでファイルを新規で作成できます。

3.ツールバー

スクリプト作成時に必要な操作ボタンがまとめられています。

保存やデバッグ、実行ログ表示、操作を1つ戻るなど

4.サイドバー

GASの設定や統計情報などを確認する画面に切り替えるためのボタンがまとめられています。

5.エディターエリア

スクリプトファイルの編集を行うエリア

こちらにプログラムを記述していきます。

手始めにプロジェクト名を変更してみましょう。

今回は、ポスト自動投稿スクリプトなので「sendTweet」に変更しましょう。

続いてプログラムを記述していきます。

今回作成するプログラムの完成形は以下になります。


 

認証処理追加

最初に追加したライブラリにてXと認証を行う処理を作成します。

以下のように記述します。

認証処理では、取得したAPIキーを用いて認証処理を行います。

記述したら初回認証を行います。

スクリプトを保存ボタンを押して保存しましょう。

保存できたら実行ボタンを押します。

認証画面が表示されてSUCCESSと表示されれば成功です。

Xのログイン画面がでてきたら再度入力しておきましょう。

 

投稿メッセージ作成処理

投稿メッセージを作成する処理を追加します。

以下の関数をスクリプトの末行に追記します。

APIで送信できるポストは、全く同じ文章を送信することができません。

そこで今回は、投稿文章に投稿時間を含めて同じ文章とならないようにしています。

投稿メッセージランダム選択処理

複数のツイートメッセージを用意し、ランダムで選択する処理を実装します。

以下の関数をスクリプトの末行に追記します。

引数に値を入力することで1~入力された引数の範囲でランダムに値を返します。

ポスト投稿処理

実際にX(旧ツイッター)にツイートを投稿する処理を実装します。

以下の関数をスクリプトの末行に追記します。

投稿処理では、先程作成したスプレットシートから投稿メッセージを作成する関数とランダムで値を返す関数をそれぞれ呼び出します。

スプレットシートに記載されているメッセージの行数を取得しランダム関数にて1からメッセージ行数のなかからランダムで行数を選択。

選択された行数に記載されているメッセージを投稿メッセージ作成関数にて加工。

最後にAPIを利用してメッセージをポストします。

動作確認

実際に完成したツールを使ってみましょう。

スプレッドシートの「投稿メッセージリスト」シートに投稿したいメッセージを書き込みます。

実行する関数を「sendTweet」に選択してスクリプト実行ボタンをクリック。

X(旧ツイッター)にツイートを投稿されれば成功です。

投稿されたら履歴に追加されています。

トリガー追加

作成したスクリプトを定期的に実行されるようにトリガー設定します。

今回は、1日1回ポストが行われるようにします。

AppScript画面にて以下の操作を行います。

トリガーボタンをクリック。

トリガーを追加をクリック

以下の設定でトリガーを設定して保存をクリック。

設定内容

実行する関数を選択:RegisterSchedule

実行するデプロイを選択:Head

イベントのソースを選択:時間主導型

時間ベースのトリガーのタイプを選択:日付ベースのタイマー

時間の間隔を選択(日):任意の時刻

画像では、午前10時~11時に間に実行する設定を行っています。

自作したスクリプトにトリガーを設定する場合は、セキュリティ警告がされるので許可します。

一覧に設定したトリガーが表示されればトリガー設定完了です。

新着メールを受信して翌日に自動的にスプレッドシートに転記されていれば成功です。

まとめ

今回は、GASとX(旧ツイッター)を連携して定期的に自動ポストを行う方法をご紹介しました。

本記事の内容をまとめると以下。

    • X(旧ツイッター)に自動投稿させるにはAPIの取得が必要
  • X(旧ツイッター)のAPIとGASを連携することで簡単かつ効率的に定期ツイート自動投稿ツールの作成が可能
  • X(旧ツイッター)のAPIは、プランによって投稿以外にフォローやいいねなども可能

X(旧ツイッター)のAPIを利用した自動投稿機能は、簡単に実装できてかつGASと組み合わせることを投稿タイミングや投稿内容をカスタマイズできます。

ぜひ、今回作成したツールを改良してあなたに最適な自動投稿ツールを作成してみてください。

なお、サービス名をXに改名以降APIの見直しが行われており提供機能が今後変更となる可能性があります。

APIを利用する際は、利用タイミングでのAPIの仕様や制限を把握しておきましょう。

\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き
タイトルとURLをコピーしました