目次
事前準備
Slack Appを作成していない方は、以下の記事を参考にSlack Appを作成してください。
https://reigle.info/entry/2022/10/19/100000reigle.info
以下の記事を参考にSlack Appの「OAuth Tokens for Your Workspace
」を生成しておいてください。
https://reigle.info/entry/2022/10/21/100000reigle.info
権限の追加
以下の記事を参考に、「chat:write
」「im:write
」の権限を追加します。
https://reigle.info/entry/2022/10/20/100000reigle.info
DMの送り先のメンバーIDの確認方法
Slackアプリから、該当のメンバーのプロフィールを開き(ユーザーアイコンなどを押下する事で開く事ができます)、その他のメニューを押下する。
「メンバーIDをコピー
」を押下する。
クリップボードにメンバーIDがコピーされているので、任意のテキストエディタなどで「command + v」を押下して貼り付けると、メンバーIDが確認できる。
GASでDMを送信する方法
「Google Apps Script」を開き、以下を貼り付ける。
const BOT_USER_OAUTH_TOKEN = "xoxb-XXXXXX"; const MEMBER_ID = "XXXXXX" const MESSAGE = "テスト1" function slackPostDM() { const message_options = { "method" : "post", "contentType": "application/x-www-form-urlencoded", "payload" : { "token": BOT_USER_OAUTH_TOKEN, "channel": slackGetChannelID_(MEMBER_ID), "text": MESSAGE } }; UrlFetchApp.fetch('https://slack.com/api/chat.postMessage', message_options); } function slackGetChannelID_(member_id) { const options = { "method" : "post", "contentType": "application/x-www-form-urlencoded", "payload" : { "token": BOT_USER_OAUTH_TOKEN, "users": member_id } } const response = UrlFetchApp.fetch('https://slack.com/api/conversations.open', options); const obj = JSON.parse(response); return obj.channel.id; }
定数の内容はそれぞれ以下を参考に書き換えてください。
「BOT_USER_OAUTH_TOKEN
」には、「事前準備
」に記載の「OAuth Tokens for Your Workspace
」で生成したTokenを貼り付けてください。
「MEMBER_ID
」には、「DMの送り先のメンバーIDの確認方法
」で取得したメンバーIDを貼り付けてください。
「MESSAGE
」には、送信するメッセージを任意で記載してください。
「slackPostDM
」関数を実行した結果、SlackのサイドメニューにAppが表示され、開くとメッセージが届いているれば成功です。