GASスクリプトでSlackスレッドに自動返信する方法

えっと、GASを使ってSlackのスレッドに自動で返信したいんだけど、どうやったらいいのかな…?
猫男
猫男
catman
catman
お手のものさ、その悩みをcatmanが解決してやろう。GASとSlackを連携させてスレッド返信を自動化する方法を教えるさ。

GASとSlackの連携の始め方

GASを使ってSlackでスレッドに返信するためには、まずSlackとGASを連携する必要があります。

Slackアプリを作成する

最初に、SlackのAPIを使うためにSlackアプリを作成します。

Slackの管理画面にアクセスし、「新しいアプリを作成」ボタンをクリックします。

アプリ名を入力し、情報を保存します。

GASプロジェクトを作成する

次に、GASのプロジェクトを作成します。

GASのダッシュボードにアクセスし、「新しいプロジェクト」をクリックします。

プロジェクト名を決めて、作成します。

GASでSlackスレッドに返信するスクリプトを書く

SlackアプリとGASが準備できたら、スレッドに自動返信するスクリプトを作成します。

スクリプトの内容

GASでSlackのスレッドに返信するには、Slack APIを使用して特定のエンドポイントにリクエストを送信します。


function postReplyToThread(channelId, threadTs, message) {
 const url = "https://slack.com/api/chat.postMessage";
 const payload = {
 "channel": channelId,
 "thread_ts": threadTs,
 "text": message
 };
 
 const options = {
 "method": "post",
 "headers": {
 "Authorization": "Bearer xoxb-your-slack-bot-token",
 "Content-Type": "application/json"
 },
 "payload": JSON.stringify(payload)
 };
 
 UrlFetchApp.fetch(url, options);
}

このスクリプトは指定したチャンネルの特定のスレッドにメッセージを送信します。

各パラメータには適切な値を設定してください。

 

なるほど、Slack APIを叩くんだね。これなら自動化できそう!
猫男
猫男

応答メッセージの内容を工夫する

GASを使ってスレッドに返信するメッセージを考えるときには、その内容も重要です。

応答メッセージの基本パターン

誰に対してどういう内容を送るのかを決めましょう。

例えば、受け取ったメッセージに感謝を伝える場合:


postReplyToThread("C12345678", "1609459200.000200", "お問い合わせありがとうございます。順次対応いたします。");

スレッドに送るメッセージ内容を工夫することで、よりスマートな自動化が可能です。

 

catman
catman
これで、GASを使ってSlackスレッドに応答メッセージを自動送信する準備は整ったようだ。

練習問題:GASでSlackスレッドにカスタムメッセージを送る

  • SlackのAPIキーとチャンネルIDを使って、特定のスレッドに「サポート担当が対応します」と自動返信スクリプトを書いてみましょう。

 
 

解答・解説

SlackアプリケーションのAPIキーを正確に指定することが肝心です。以下、解答例を参考にしてください。


function sendSupportReply(channelId, threadTs) {
 const url = "https://slack.com/api/chat.postMessage";
 const payload = {
 "channel": channelId,
 "thread_ts": threadTs,
 "text": "サポート担当が対応します。"
 };
 
 const options = {
 "method": "post",
 "headers": {
 "Authorization": "Bearer xoxb-your-slack-bot-token",
 "Content-Type": "application/json"
 },
 "payload": JSON.stringify(payload)
 };
 
 UrlFetchApp.fetch(url, options);
}

// チャンネルIDとスレッドTSを指定する
sendSupportReply("C12345678", "1609459200.000200");

このスクリプトでは、指定したスレッドに「サポート担当が対応します」とメッセージを送るための設定を行っています。

UrlFetchApp.fetch()メソッドは、指定したURLにHTTPリクエストを送り、そのレスポンスを取得します。

Slack APIの”bearer”トークンは、アプリの認証に必要な情報ですので、取得して適切に設定します。

これで、GASを使ったSlackスレッドへの返信ができるようになったね。頑張って設定してみるよ!
猫男
猫男

EARTHPG 自動化研究所

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

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