日々多くの情報が飛び交う現代社会において、SNS、特に X (旧 Twitter) を活用した情報発信は、ビジネスパーソンにとっても重要なスキルの一つとなっています。
ただ、「忙しくてなかなか手が回らない」「もっと効率的に情報発信したい」と感じている方も多いのではないでしょうか。
そこで今回は、ノーコード自動化プラットフォームである「Make (旧 Integromat)」と、Google の高性能 AI「Gemini API」を組み合わせることで、X (旧 Twitter) への投稿を自動化する方法を解説しています。
Make自体はクラウドベースで動くので、同時に複数処理をこなすことも出来るようにもできます。皆さんも「MakeとAIを活用した自動化」にチャレンジしてみると、より早く、仕事を終えられ、やりたいことに時間を使えるようになるかもしれません。
本記事は実装途中の内容ですが、かなり精度高く、過去の投稿や発信を参考にした内容をもとにXの投稿文を自動生成して、ChatWorkやSlackに返信してくれるようになっています。
単なる「Makeの自動化をやってみた」ではなく、GeminiのGEM機能に類似した機能を段階的な処理で実現できているので、GEMやGPTsはAPI連携できないのですが、このやり方ができれば他のやり方も含めてGemini×makeで業務全体の生産性向上にも繋がるヒントだと思います。
▼音声配信で聞きたい方はコチラもどうぞ(StandFM)

なぜX (旧 Twitter) 投稿の自動化をmakeでやろうと思ったのか?

X (旧 Twitter) はリアルタイム性の高い情報拡散力を持つ強力なプラットフォームですが、その効果を最大限に引き出すためには、戦略的かつ継続的な投稿が不可欠です。
しかし、多忙な業務の合間を縫って質の高いコンテンツを定期的に発信し続けるのは、決して簡単なことではありません。
投稿の自動化は、このような課題を解決する有効な手段です。
- 時間創出: 定型的な投稿作業から解放され、より創造的な業務に集中できます。
- 継続性の担保: 忙しさに関わらず、計画通りの情報発信が可能になります。
- エンゲージメント向上: 最適なタイミングでの投稿により、フォロワーとの関係性を深められます。
また、必要以上に個人の思想が入らないので「炎上リスク」をかなり抑えることにも貢献できるでしょう。
まさに、日々、業務効率化を考える方々にとって、検討する価値のあるテーマではないでしょうか?
Make (旧 Integromat) とは? – あなたの業務を繋ぐ自動化プラットフォーム
「Make」(旧 Integromat)は、様々なウェブサービスやアプリケーションを連携させ、一連の作業を自動化できるノーコードプラットフォームです 。プログラミングの知識がなくても、直感的なインターフェースで「シナリオ」と呼ばれる自動化フローを構築できます。
Make の特徴 | 説明 |
---|---|
豊富な連携先 | Gmail、Google スプレッドシート、Slack、Chatwork、そして X (旧 Twitter) など多数。 |
直感的な操作性 | ドラッグ&ドロップでモジュールを繋ぎ、視覚的に自動化フローを設計可能。 |
柔軟なカスタマイズ | 条件分岐や繰り返し処理など、複雑なワークフローにも対応。 |
多様なトリガー | 定期実行、Webhook、特定のアクション発生時など、様々な起点でシナリオを開始。 |
まさに、日々の繰り返し作業を効率化したいと考えている方にとって、Make は非常に強力な味方になる可能性があると思います。また、ChatGPTやGeminiといった生成AIとAPI連携することで、その力はより大きなものになると思います。
トラブルシューティングもスクショやエラーコードをコピペするだけでAIが解決してくれるので、これまで自動化ツールやコード、関数や英語に苦手意識があった人も取組みやすくなっています!
Gemini API とは? – AI によるコンテンツ生成の新たな可能性
「Gemini API」は、Google によって開発された最新の高性能 AI モデル群です。
テキスト生成、翻訳、要約、質疑応答など、多岐にわたるタスクを人間並みの自然さでこなすことができます。今回はGoogleDriveとも連携させ、企業の過去の発信やインタビューを読み込ませてそこから一定のプロンプトでGeminiにX(旧Twitter)の投稿文を生成させています。
なのでインタビューやYoutubeでの発信内容から乖離することもほとんどなく、これまでとこれからをつなぎ合わせた発信ができるようなmakeのワークフローにチャレンジしています。
実はChatGPTではなくGeminiを選んでいる理由もあるのですが、それはまた別の機会に詳しくお話ししたいと思います。ただ、ワークフローとして継続的に運用するのであればChatGPTの方が合理的だと考えています。
今回の「makeを活用したX(旧Twitter)の自動化」 シナリオでは、単なる作業の自動化に留まらず、コンテンツの質的向上も期待できると考えています。
実践!Make と Gemini API で X (旧 Twitter) 投稿を自動化する事例

ここからは、実際に Make と Gemini API を使って X (旧 Twitter) 投稿を自動化するプロセスと、その過程で遭遇しやすいエラーとその解決策を、makeで自動化した事例としてご紹介したいと思います。
今回は、Chatwork で特定のハッシュタグ(例:#X投稿
)を含むメッセージを送信すると、その内容を元に Gemini API が X (旧 Twitter) の投稿案を3つ作成し、結果を Chatwork に返信する、というシナリオで簡単に紹介したいと思います。
今回はChatWorkを使っていますが、これはLINEやSlackでも問題なく実現できます。
実際はGoogleDriveに保存した内容を読み込ませたり、キャッシュ化して内容更新時に自動で更新をかけたり、何度もChatWorkでチャットのようにやりとりができるようにしていますが、全部を紹介していると凄い量になるので・・・
まずは簡単にどんなことができるのか?をご場開したいと思います。
シナリオの全体像
- Webhook (Chatwork): Chatwork からのメッセージを受信します。
- Filter: 「
#X投稿
」という文字列を含むメッセージのみを通過させます。 - Text Parser: メッセージ本文から「
#X投稿
」以降の内容を抽出します。 - HTTP (Gemini API): 抽出した内容を Gemini API に送信し、投稿案をリクエストします。
- Chatwork: 生成された投稿案を Chatwork に返信します。
3.がXの大枠の投稿テーマで、その内容に沿った発信をGeminiに生成してもらうようなイメージです。ここではGoogleDriveとの連携を簡略化して説明しています。実際は、GoogleDriveとの連携までは終わっています。
トリガーとなる Webhook の設定
まず、Make のシナリオの起点となる Webhook を設定します。Chatwork モジュールを使って新しいメッセージを監視し、指定したルームでの投稿をトリガーとすることができます。
実はここでちょっとしたトラブルがありました。
ChatGPTは「WebhookでChatWork投稿を即時に検知できない」と言ってきたのですが、本当か?と思い、検索ベースのPerplexityに確認したところ「いや!即時に検知できる!」と言ってきたので、そのソースをChatGPTに投げて確認したところ・・・
結論は「即時検知ができました」笑
こういうこともあるので、まだまだAIの1つの回答だけを頼りにしないで、見極める目と思考、検証作業は大事ですね🤔🌻
フィルターの設定 – 「#X投稿
」を含むメッセージだけを処理する
次に、意図しないメッセージでシナリオが動作しないように、フィルターを設定します。ここで重要なのは、フィルターをかけるタイミングと対象です。
当初、Text Parser モジュールの後にフィルターを配置し、Text Parser の出力(10.1
)に「#X投稿
」が含まれるか、という条件を設定してしまうケースがありました 。しかし、Text Parser は「#X投稿
」という文字列自体を除いてその後ろのテキストを抽出するため、この条件ではフィルターが正しく機能しません 。
正しい設定: フィルターは、Webhook モジュール (仮にモジュール1とします) の直後に配置します。 そして、フィルターの条件を「1.webhook_event.body
Contains #X投稿
」とします 。 これにより、Webhook で受信したメッセージ本文 (webhook_event.body
) に「#X投稿
」が含まれている場合のみ、次の Text Parser モジュールへ処理が進むようになります。
Text Parser で投稿の元ネタを抽出する
フィルターを通過したメッセージから、Gemini API に渡すための具体的な指示内容を抽出します。 Text Parser モジュールを使用し、正規表現パターン「#X投稿(.*)
」を設定することで、「#X投稿
」という文字列以降のすべてのテキストをキャプチャできます。この抽出されたテキストが、後の HTTP モジュールで Gemini API へのプロンプトとして利用されます。入力テキストとしては、Webhook から受け取ったメッセージ本文 {{12.webhook_event.body}}
を指定します。
HTTP モジュールで Gemini API にリクエストを送信する – ここが肝心!
ここが今回の自動化シナリオの心臓部であり、最も多くの試行錯誤が発生しやすいポイントでした。Gemini API との連携は HTTP モジュールを使って行います。
5-1. API エンドポイント URL の確認
まず、Gemini API の正しいエンドポイント URL を設定する必要があります。 エラーとして「404 Not Found」が返され、メッセージに「model/gemini-pro is not found for API version v1beta」といった内容が含まれる場合 、URL に古い API バージョン (v1beta
) や、利用できないモデル名が指定されている可能性が高いです。
修正: URL は、例えば https://generativelanguage.googleapis.com/v1/models/gemini-1.5-pro:generateContent
や https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent
のように、安定版である v1
を使用し、利用可能なモデル名を指定してください。Google AI Studio のドキュメントなどで最新の情報を確認することが重要です。
5-2. リクエストボディ (JSON) の正しい構成
Gemini API へリクエストを送信する際のボディは JSON 形式で記述します。ここで最も注意すべきは、Text Parser で抽出したテキストデータをどのように組み込むかです。
よくあるエラーと解決策の表
JSON ペイロード問題 | 不適切な例 | 適切な対処法 | 参照元 |
---|---|---|---|
変数のマッピングミス | "text": "内容: 10.$1" | "text": "X (Twitter) の投稿案を3つ作成してください。内容: {{10.1}}" のように {{ }} で変数を囲む。 マッピングパネル使用を推奨。 | |
parts 配列内での複数の text フィールドの競合 | {"parts": [{"text": "X (Twitter) の投稿案を3つ作成してください。内容:"}, {"text": 10.$1}]} | 1つの text フィールドに統合するか 、{{10.1}} のように正しくマッピングする 。 | |
動的入力に含まれる改行や特殊文字によるJSON破壊 (“400 Bad Request: Invalid JSON payload received. Unexpected token.”) | Text Parser の出力 {{10.1}} が改行を含む場合、JSON構造が壊れることがある。 | Text Parser と HTTP モジュールの間に Text Formatter モジュールを挟み、改行文字 (\n , \r ) 等を空白に置換する 。または {{toString(10.1)}} を使用して文字列として安全に処理する 。 | |
リクエストボディの単純化による問題切り分け | 複雑なJSON構造でエラー発生時。 | まずは "text": "X投稿案を3つ作成" のような固定値でテストし 、成功後に動的データを追加する 。 |
リクエストボディの記述例(修正後): Text Parser モジュールが10番だと仮定した場合、以下のように記述します。
JSON
{
"contents": [
{
"parts": [
{
"text": "X (Twitter) の投稿案を3つ作成してください。内容: {{10.1}}"
}
]
}
]
}
または、内容を分けて記述する場合は以下のようにします。
JSON
{
"contents": [
{
"parts": [
{
"text": "X (Twitter) の投稿案を3つ作成してください。内容: "
},
{
"text": "{{10.1}}"
}
]
}
]
}
重要なのは、{{10.1}}
の部分が Text Parser モジュール (10番) の出力の最初の要素 (1
) を正しく参照していることです 。で、ChatGPTやGemini等と相談していると、そこからのコピペで終わらせたくなりますが、Make上でポップアップがでるので、そこで選択することが非常に大事でした。

Make のマッピングパネルを使用して変数を挿入するのが最も確実です 。
5-3. API キーの確認
API キーが正しい形式であるか、また Gemini API の使用権限が付与されているかも確認しましょう。Google API キーは通常、「AIza
」で始まることが多いです。設定しているGemini APIキーが正しいかは念を入れて確認しましょう。
5-4. 「400 Bad Request」エラーへの対処
「Error: 400 Bad Request > {"error":{"code":400,"message":"Invalid JSON payload received. Unexpected token..."}}
」というエラーは、送信したJSONペイロードが無効であることを示しています 。これは主に、Text Parser からの出力に含まれる改行文字や特殊文字が原因で発生します 。 この場合、前述の表にもある通り、Text Formatter モジュールを使って不要な文字を事前に除去する処理を入れるのが有効です 。

実際には、こんな感じでエラーをChatGPTに丸投げして意味や対応策を考えてもらうことで、だいたいのことは解決します。もしかしたら、それがこの記事で一番有益かもしれませんw
Chatwork に結果を返信する
Gemini API から正常にレスポンスが返ってきたら、その内容(生成されたXの投稿案)を Chatwork モジュールを使って元のルームに返信します。これで一連の自動化フローが完成です。
これはスタートのステップでもご紹介しましたが、自分が使いやすいChatWorkやLINE、Discord等で大丈夫です。実際のワークフローは、ここで確認して問題なければX(旧Twitter)に投稿するフローにしています。
ただ、既にStep6なので😅本記事ではここまでとさせてください。X(旧Twitter)との連携はまた別の記事で御紹介しますね!
Make 自動化を成功させるためのヒントと注意点
色々と言っていますが、要は次の2つが大事だと思いました。
1.エラー対応も分からないところも全部、一回、スクショ撮ってChatGPTに聞く
2.とにかく1ステップだけMakeで動かしてみる
モジュールとかマッピングとかJSONとか、非エンジニアには聞きなれない単語も多く、よくわからないことも多いと思うんですよ。ただ、それで自分の作業を機械にやらせるのをあきらめるのはもったいないです。
とにかくChatGPTに丸投げして、小さく1つ動かして単語や設定に慣れていく、そうすると段々と分かってくると思います!
- 段階的なテスト: シナリオ全体を一度に作ろうとせず、各モジュールが期待通りに動作するかを個別にテストしながら進めましょう。特に、HTTP モジュールは最も単純なリクエスト(固定テキストなど)から試し、徐々に複雑にしていくのが良いと思います。
- 実行ログの活用: Make の実行ログには、各モジュールの入力データと出力データが詳細に記録されています。エラー発生時はもちろん、期待通りに動作しない場合も、このログを確認することで問題の原因究明に繋がります。
- 正しいデータマッピング: Make の肝はモジュール間の正しいデータ連携です。
{{ }}
で囲まれた変数が、意図したモジュールの正しい出力フィールドを参照しているか、常に注意深く確認しましょう。手入力ではなく、マッピングパネルを利用するのが確実です 。 - APIドキュメントの確認: Gemini API のような外部サービスを利用する場合、そのAPIの公式ドキュメント(リクエスト形式、必須パラメータ、認証方法、エラーコードなど)を必ず確認しましょう。APIの仕様は変更されることもあるため、最新情報を参照することが重要です。
まとめ:Make と AI で切り拓く、新しい働き方
今回は、Make (旧 Integromat) と Gemini API を活用した X (旧 Twitter) 投稿の自動化について、具体的な設定手順からトラブルシューティング事例まで詳しく解説しました。makeやRPA等と違って処理中でも自分のPCを使い続けられるので、中小企業やフリーランス等の業務効率化と相性が良いと思います。
小規模事業者程、1台PCが止まったら困るじゃないですか😅
皆さんの業務効率化の一助となれば幸いです。
さらにMake のようなノーコード・ローコードツールと、Gemini API のような強力な AI 技術を組み合わせることで、これまで専門知識が必要だったり、多大な時間を要していたりした業務も、驚くほど簡単に自動化できるようになります。
これは単に「楽をする」ためだけではなく、より創造的で付加価値の高い仕事に集中するための時間を生み出す、未来志向の働き方と言えるでしょう。
例えば、今回で言えば「ChatGPTを開いてXの投稿文案を生成」して、上司にChatGPTやSlackで確認して、Xのアプリを開いて投稿して、というだけで3回も画面が変わって作業してめんどくさいじゃないですか。
それを全部LINEやSlack、ChatWork上で終わるなら結構楽になると思うんですよね。もちろんX(旧Twitter)の投稿文だけでなく、メールや社内資料等、様々な場面で使えると思います。
Make.com は様々な料金プランも用意されており、スモールスタートから大規模な自動化まで対応可能です(料金詳細は公式サイトをご確認ください)。ぜひこの機会に『make.comを活用した自動化』の第一歩を踏み出し、あなたのビジネスを加速させてみませんか?
この記事が、日々の業務に追われる皆さんにとって、新しい働き方のヒントとなれば嬉しいです。