目次
事前準備
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が表示され、開くとメッセージが届いているれば成功です。

