個人で使える!複数のSlackメンションをGASで自動管理する方法

Slackのメンション管理を自動化できたらなあ…GASで何とかなるのかな?
猫男
猫男
catman
catman
catmanが来たからには、個人で使えるGASを使ってSlackメンションを自動管理する方法を教えてやろう!

GASとSlackの連携について

SlackとGASを連携させることで、メンションの通知を自動管理できます。

この技術を習得すれば、日々の通知作業が大幅に簡素化されるでしょう。

Slack APIの利用

SlackのAPIを使うことでメンション情報を取得できます。

まず、Slack APIトークンを取得し、GASからアクセスする準備を整えます。

GASでの初期設定

GASでプロジェクトを作り、Slack APIと連携するスクリプトを書いていきます。

このステップをクリアすれば、後はメンションを見逃さずにすみます。

 

それって、どんな感じでやるの?スクリプトとか書くのかな?
猫男
猫男
catman
catman
安心しろ、ここにサンプルを用意した。これでGASとSlackの連携を学べるぞ!

GASでSlackメンションを取得する方法

Slackメンションを取得し、個人で管理するためのサンプルスクリプトはこちらです。


function fetchSlackMentions() {
  const token = 'YOUR_SLACK_TOKEN';
  const url = 'https://slack.com/api/conversations.history';

  const response = UrlFetchApp.fetch(url, {
    method: 'get',
    headers: { Authorization: 'Bearer ' + token },
  });

  const data = JSON.parse(response.getContentText());
  return data.messages.filter(message => message.text.includes('@user'));
}

このスクリプトでは、conversation.history APIを用いてメッセージを取得しています。

filterメソッドを使って、@user のメンションを含むメッセージだけを抽出します。

環境設定の注意点

事前にSlack APIトークンを準備し、スクリプト内の’token’変数にセットしてください。

APIの権限設定には注意が必要です。適切な権限を付与したトークンを用いましょう。

 

動いた!これで僕のSlack生活も少し楽になりそうだね!
猫男
猫男
catman
catman
良かったじゃないか。これからもGASを使って、色々な作業を効率化していこう!

練習問題

GASを使って、特定のチャンネルからメンション含むメッセージだけを取得するスクリプトを書いてみましょう。

  1. Slack APIのトークンを取得し、変数にセットします。
  2. conversations.history APIを用いてチャンネルからメッセージを取得します。
  3. メンションを含むメッセージだけを抽出する条件を設定します。

 
 

解答・解説


function fetchSpecificChannelMentions() {
  const token = 'YOUR_SLACK_TOKEN';
  const channel_id = 'YOUR_CHANNEL_ID';
  const url = <span class="code-function">https://slack.com/api/conversations.history?channel=${channel_id}</span>;

  const response = UrlFetchApp.fetch(url, {
    method: 'get',
    headers: { Authorization: 'Bearer ' + token },
  });

  const data = JSON.parse(response.getContentText());
  return data.messages.filter(message => message.text.includes('@user'));
}

このスクリプトでは、channel_idを指定することで特定のチャンネルのメッセージを取得しています。

取得したメッセージから、filterメソッドでメンションを含むものだけを抽出します。

このようにGASを活用することで、後はあなた次第で多様なカスタマイズができます。

EARTHPG 自動化研究所

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

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