Google Apps Script で Slack のステータスを変更する
2020-06-12ふと、 Google カレンダーの予定と Slack のステータスを連携させたいなと思い、 Google Apps Script でその処理を書いてみた話です。
概要
先に書いておきますが、冒頭で書いた 「Google カレンダーの予定と Slack のステータスを連携させたい」 というのは実現できませんでした。そういう便利なものは既に存在しているので、もし連携させたいなと思っている方は使ってみてください。
なので、今回はただ単に Google Apps Script (以下、GAS) で Slack のステータスを変更してみたという話になります。いわゆる供養ブログです。
(やりたかったこと)
GAS を実行するためのトリガーには次の 2 通りがあります。
- 時間主導型
- カレンダーから
時間主導型 は、いわゆる cron みたいな形式で実行タイミングを指定します。
カレンダーから は、 Google カレンダーと連動したトリガーとなります。この 連動 を、勝手に良いように解釈して 「予定の開始とか終了もトリガーにできるんじゃね?」 と思っていたのが間違いでした。 GAS のトリガーとして指定できるカレンダーの連動とは、 予定の変更 のようです。
GAS で Slack のステータス変更
では、供養する GAS の紹介です。
Slack のステータス変更は POST https://slack.com/api/users.profile.set
のエンドポイントにリクエストします。
このエンドポイントではユーザ名やメールアドレスも変更できますが、ステータスを変更する場合は次のような payload を post します。
{
"profile": {
"status_emoji": ":ghost:",
"status_text": "status message"
}
}
status_emoji
にはステータスの絵文字コードを指定します。存在しない絵文字を指定した場合は profile_status_set_failed_not_valid_emoji
エラーとなります。 staus_emoji
、 status_text
ともに空文字を指定すると、ステータスをリセットすることができます。
また、 GAS で外部 API にリクエストを送信するためには UrlFetchApp.fetch()
を使用します。
まとめ
Google Apps Script で Slack のステータスを変更してみた話でした。
とくにまとめる内容もないですが、便利な仕組みはだいたい既に存在しているなと思いました。(小並)
comments powered by Disqus