0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

スラック でリマインダー機能を使用する時のテンプレート作成プログラム

Posted at

その日1日ミーティングのホストになってしまった!

何かしらスラック のグループでその日1日ホストとなり、会議のためのズーム URLを時間ごとに投稿する機会があると思います。

問題

・その時間にZOOMのURLの投稿を忘れてしまう
・投稿しなければ!と集中力がゼロになってしまう

解決法

・スラック のリマインダー機能を使用する。
朝にその日に自分が投稿するものを一斉に予約しておけば、設定した通りに投稿されます。
詳しくは以下のページを参考にしてください。
https://lab.sonicmoov.com/tool/slack-reminder/

スラックのリマインダー機能を使う際の問題

リマインダー機能を使うには、1つの投稿につき1つのリマインダーを設定する必要がある。つまり、コピペして記載する文章やら時間をゴニョゴニョと書き換える必要があります。(そんなことしなくて良い機能があったら教えてください。。)

解決法

以下のプログラムを作成しました。

riminder.rb
# 設定
outputs = ["10:00","11:00","13:00","15:00","16:00","17:00","18:00","19:00"]#zoomのurl投稿時間
channel_name = "#〇〇"#通知チャンネル
notification = "@here"#通知する人
notification_time = "3"#何分前に通知するのか
word = ["朝礼","昼礼","ご参集ください"] #投稿したい言葉

class Riminder #リマインダーを生成するクラスです
  def initialize(times,zoom,channel,notification,pre_time,word) #インスタンス変数?を定義
    @times = times
    @zoom = zoom
    @channel = channel
    @notification = notification
    @pre_time = pre_time
    @word = word
  end

  def sentence #実際に出力する文章を作成します
    n = 0
    @times.each do |time| 
        if n == 0 #outputsの配列の番号?によって出力する言葉を変えています
          sentence = @word[n]
        elsif n == 1
          sentence = @word[n]
        else
          sentence = @word[2]
        end
      bot = "/remind #{@channel}\n#{sentence}#{time}\n#{@zoom}\n#{@notification}\n#{@times3[n]}\n " #この文章が出力されます
      puts bot
      n += 1
    end
  end

  def timechanger #3分前に通知したいので、アウトプット時間から3分前の値を出力してます
    @times3=[]
    @times.each do |time|
      a = time.split(":") #"10:00"の:を削除してます
      time1 = Time.local(2020,10,1,a[0],a[1],00) #Timeという時刻に関するrubyに標準装備されているクラスを使用します
      time2 = time1 - (@pre_time.to_i * 60) #3分前(180秒)(通知したい時間)
      @times3 << "#{time2.hour}:#{time2.min}"#10:10みたいな時間表記に変更してtimes3配列に入れていきます
    end
  end
end


puts "アウトプットの時間は、#{outputs}です"
puts "投稿するチャンネルは#{channel_name}です"
puts "通知メンバーは#{notification}です"
puts "通知時間はアウトプットの#{notification_time}分前です"
puts "あなたのzoomのurlを入力してください"
url = gets.chomp
riminder = Riminder.new(outputs,url,channel_name,notification,notification_time,word)
# riminder.bot
riminder.timechanger
riminder.sentence
puts "生成されたリマインダーをスラックに投稿してください"




これをターミナルで実行するとzoomのurlが求められ、入力すると、

生成されたリマインダーをスラックに投稿してください
amagatanobuhiko@amagatahikosMBP desktop % ruby riminder.rb
アウトプットの時間は、["10:00", "11:00", "13:00", "15:00", "16:00", "17:00", "18:00", "19:00"]です
投稿するチャンネルは#〇〇です
通知メンバーは@hereです
通知時間はアウトプットの3分前です
あなたのzoomのurlを入力してください
zoom.com
/remind #〇〇 ”
朝礼10:00
zoom.com
@here
” 9:57
 
/remind #〇〇 ”
昼礼11:00
zoom.com
@here
” 10:57
 
/remind #〇〇 ”
ご参集ください13:00
zoom.com
@here
” 12:57
 
/remind #〇〇 ”
ご参集ください15:00
zoom.com
@here
” 14:57
 
/remind #〇〇 ”
ご参集ください16:00
zoom.com
@here
” 15:57
 
/remind #〇〇 ”
ご参集ください17:00
zoom.com
@here
” 16:57
 
/remind #〇〇 ”
ご参集ください18:00
zoom.com
@here
” 17:57
 
/remind #〇〇 ”
ご参集ください19:00
zoom.com
@here
” 18:57

のような出力が得られます。
これを下のようなブロックごとにスラック に貼り付けて送信するだけです。

/remind #〇〇 ”
ご参集ください19:00
zoom.com
@here
” 18:57

上の設定の部分で、通知したいチャンネル、何分前に通知するか、などを設定できます。
これを作った後にスラックでボットが作成できるようだと知りましたが、、まだよくわかってません。
また調べてみます。

以上

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?