DiscordとTwitterをGASで自動連携!簡単ステップガイド
自動投稿の準備
まずは、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に投稿します。