LoginSignup
3
2

More than 1 year has passed since last update.

GASでSlack検索&結果を投稿

Posted at

※初めての投稿なので、温かい気持ちで読んでいただけると幸いです。

背景

Slackを全社導入し、拡大する中で増えてくる参加チャンネル。
当然、届くメッセージも増えてくるわけでいつしかできたマイルール。
特定のリアクションをつけて、後から「has:reaction hasmy::{リアクション名}:」で検索。
ところが、それすら忘れる始末。いかん。

やったこと

  • GAS(GoogleAppScript)でSlackの投稿を検索
  • 検索結果をSlackの特定チャンネルに投稿
    ※Botユーザの作成は済んでいる前提の記事となります

GAS(GoogleAppScript)でSlackの投稿を検索

slackManage.gs
const token = "{Slackのトークン}";
const channelId = "{送信先チャンネルのID}";

function getAtode() {
  var date = new Date();

  if (date.getDay() == 0 || date.getDay() == 6) {
    return;
  }

  let options = {
    "method": "get",
    "contentType": "application/x-www-form-urlencoded",
    "payload": {
      "token": token,
      "query": "has:reaction hasmy::atode:"
    }
  }
  
  let url = 'https://slack.com/api/search.messages';
  let response = UrlFetchApp.fetch(url, options);
  
  let obj = JSON.parse(response);
  let count = obj.messages.total;
  let matches = obj.messages.matches;
  
  let resMessage = "【後でやる一覧】\n";
  
  for (var i = 0; i < count; i++) {
    resMessage = resMessage + matches[i].permalink + '\n';
  }
  sendSlack(resMessage, channelId);
}

検索結果をSlackの特定チャンネルに投稿

slackPost.gs
function sendSlack(message, channelId) {
  let token = "{Slackのトークン}";
  let slackApp = SlackApp.create(token);

  slackApp.postMessage(channelId, message);
}

最後に

GASでめんどくさいを自動化してハッピーライフ

参考

GASとは
Slackのメッセージ検索

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2