自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

プライベートチャンネル自動生成 GASでSlackスラッシュコマンド(後編)

前回、GASでSlackのスラッシュコマンドのテストを行いました。 無事に応答が返ってくるのも確認できたので実際にプライベートチャンネルを作成する処理を書いていきます。 codelife.cafe

動作概要の確認

  1. スラッシュコマンド /soudan を実行
  2. プライベートチャンネル private_soudan_<ユーザ名>を生成
  3. チャンネルにコマンド実行ユーザとスプレッドシートで指定したユーザを追加
  4. チャンネル作成完了のメッセージを返す
  5. エラーが発生した場合はエラーコードを返す

こんなかんじで動きます。

  • Slack App の設定
    • Slash Commandを変更
    • OAuth Tokenを取得
    • 権限スコープを設定
  • Google Apps Script を作成
    • getSlackUsers() ユーザ情報を一括取得
    • createSlackGroups(channel_name) プライベートチャンネル作成
    • inviteSlackUser(channel_id, user_id) チャンネルにユーザを追加
    • getInviteSlackUsers() 参加ユーザリストを取得
    • doPost(e) SlashCommandからのリクエスト受付
  • 検証
    • エラー処理の確認
  • まとめ
続きを読む

相談用プライベートチャンネル自動生成 GASでSlackのスラッシュコマンド(前編)

shanaiho.smarthr.co.jp 会社の同僚からこんなのをやりたいとURL付きのチャットが来たので、GASで実装できるか検証してみます。

最終目標

  1. 所定のスラッシュコマンドを実行する
  2. プライベートチャンネルを生成
  3. プライベートチャンネルに実行ユーザと固定ユーザを追加
  4. チャンネルの案内メッセージを返す

というのを作るんですが…そもそもSlackのSlash Commandを作ったことがないので前編ではどんな風にGASに対してリクエストを送信できるのかを実験。 まずはSlash Commandを実行すると送信したリクエスト内容をそのまま返すだけの機能を作ってみます。

  • Google Apps Script を作成
  • Slack Apps を作成
  • Slash Commands を作成
  • アプリをWorkspaceにインストール
  • 実験
  • まとめ
続きを読む

Node-RED×Yahoo気象情報API×Slack×Alexaで雨雲通知システムを作る

f:id:maru0014:20201223232055p:plain この記事は UG Advent Calendar 2020 24日目の記事です。

早速ですが記事タイトルの動作イメージからご紹介しましょう。

動作イメージ

Yahoo気象情報APIを15分毎に参照して自宅の座標に一定数以上の降水量予測が検知された場合、Slackのhome_speakerチャンネルに予測日時と予測降水量を投稿しつつ、Alexaに読み上げてもらうというものです。

Slack通知はこんなかんじ。実験なので過去の日時になっていますが基本は現在日時以降の予測情報からメッセージを生成します。

f:id:maru0014:20201223232223p:plain
Slackへの通知イメージ

続きを読む

毎朝GASでGoogle Tasks(ToDo)を取得して期限切れタスクをSlackで教えてもらう

f:id:maru0014:20201222211706p:plain

この記事は UG Advent Calendar 2020 23日目の記事です。

カレンダーやGmailの横にある Google Tasks はシンプルかつ使いやすい。

でもここに書いたは良いけど定期的に棚卸ししたりできているかというと...。

ということでGASで取得してスプレッドシートにサマリーを作成、期限超過していた場合は再度期限を設定してSlackに通知するシステムを作ってみる。

続きを読む

beebotteのクライアントにPowerShellを使ってリモートでWindowsをスリープモードにする

f:id:maru0014:20201220220847p:plain この記事は UG Advent Calendar 2020 22日目の記事です。

今日、何を思ったかPowerShellでMQTTクライアントを動かしてBeebotteのシステムコールトピックに「スリープモード」がパブリッシュされたら自動でデスクトップPCをスリープするというのを作ってみたくなった。

exeファイル単体でWindowsで動くNode-RED Desktopで実現しようか一瞬迷ったけどPowerShellなら10数行で書けるんじゃねと甘く見ての犯行です。

ちょいちょい躓きましたが一応動くものはできました。「OK Google システムコール スリープモード」と言えばPCがスリープモードになります。MQTTなら自宅ネットワークに穴あけなくて済むし安全。

続きを読む