DiscordとTwitterをGASで自動連携!簡単ステップガイド

TwitterとDiscordをGASで自動連携できたらなぁ。どうやって始めたらいいんだろう…
猫男
猫男
catman
catman
GASを使ってTwitterからDiscordに自動投稿する方法を教えようか。簡単なステップでできるよう!

自動投稿の準備

まずは、TwitterとDiscordをつなげる準備が必要です。GASを使って自動投稿を設定するための基本的な流れを理解しておきましょう。

Twitter APIキーの取得

GASでTwitterから自動投稿するためには、Twitter APIキーが必要です。以下の手順で取得しましょう。

1. Twitter Developerの公式サイトで開発者アカウントを登録します。

2. プロジェクトを作成し、APIキーを取得します。

 

Discord Webhookの設定

Discord側でWebhookを設定して、GASからの投稿を受け取れるようにします。

1. Discordサーバーの設定から「Webhook」を作成します。

2. 発行されたWebhook URLを控えておきましょう。

GASでコードを書く

取得したAPIキーとWebhook URLを使って、GASのスクリプトを書いていきます。

GASプロジェクトの作成

GASのエディタを開いて、新しいプロジェクトを作成しましょう。

function postToDiscord(content) {
 const webhookUrl = "YOUR_DISCORD_WEBHOOK_URL";
 const payload = JSON.stringify({ content: content });
 const options = {
 method: "post",
 contentType: "application/json",
 payload: payload
 };

 UrlFetchApp.fetch(webhookUrl, options);
} 

UrlFetchApp.fetch()を使って、DiscordのWebhook URLにデータを送信しています。

 

GASでTwitterからデータ取得

Twitter APIを使って、ツイートデータを取得する方法を解説します。

認証とデータ取得

GASからTwitter APIを使ってツイートデータを取得する方法です。

function getLatestTweet() {
 const apiUrl = "https://api.twitter.com/2/tweets";
 const service = getTwitterService();
 if (service.hasAccess()) {
 const response = service.fetch(apiUrl);
 const data = JSON.parse(response.getContentText());
 return data.data[0].text;
 } else {
 Logger.log("認証が必要です。");
 return null;
 }
} 

この関数は、Twitterから最新のツイートを取得して返します。

 

自動連携の実践

Twitterから取得したデータをDiscordへ自動的に投稿するスクリプトを完成させましょう。

統合スクリプト

取得したツイートをDiscordに投稿するフローを組み合わせたスクリプトです。

function autoPost() {
 const tweetContent = getLatestTweet();
 if (tweetContent) {
 postToDiscord(tweetContent);
 }
} 

これで、Twitterから取得したツイートをDiscordに投稿する流れが完成しました。

 

練習問題

GASを使って、特定のハッシュタグを含むツイートを取得し、その内容をDiscordに自動投稿するスクリプトを作成してください。

 
 

解答・解説

function getTweetWithHashtag(hashtag) {
 const searchUrl = <span class="code-function">https://api.twitter.com/2/tweets/search/recent?query=${hashtag}</span>;
 const service = getTwitterService();
 if (service.hasAccess()) {
 const response = service.fetch(searchUrl);
 const data = JSON.parse(response.getContentText());
 return data.data[0].text;
 } else {
 Logger.log("認証が必要です。");
 return null;
 }
}

function autoPostHashtagToDiscord(hashtag) {
 const tweetContent = getTweetWithHashtag(hashtag);
 if (tweetContent) {
 postToDiscord(tweetContent);
 }
} 

このスクリプトでは、getTweetWithHashtag()という新しい関数を使用して、指定のハッシュタグを含むツイートを取得します。そして、autoPostHashtagToDiscord()がそのツイートをDiscordに投稿します。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。