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);
}
このスクリプトは指定したチャンネルの特定のスレッドにメッセージを送信します。
各パラメータには適切な値を設定してください。
応答メッセージの内容を工夫する
GASを使ってスレッドに返信するメッセージを考えるときには、その内容も重要です。
応答メッセージの基本パターン
誰に対してどういう内容を送るのかを決めましょう。
例えば、受け取ったメッセージに感謝を伝える場合:
postReplyToThread("C12345678", "1609459200.000200", "お問い合わせありがとうございます。順次対応いたします。");
スレッドに送るメッセージ内容を工夫することで、よりスマートな自動化が可能です。
練習問題: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”トークンは、アプリの認証に必要な情報ですので、取得して適切に設定します。