質問: 特定のチャンネルにおいて、1日の中で誰も何も投稿しなかった場合に、 特定の時間に「誰も何も投稿してないよ〜」みたいな通知を送るSlackのBotをRubyで作りたいのですが、 1日の中で誰も特定のチャンネルに投稿してないのを判別する書き方がわかりません。 例えば、 22:00までにAチャンネルに誰も投稿してなかった場合、 22:00に「誰も何も投稿してないです〜」とBotが呟く形です。 どなたか教えていただけると幸いです。
回答: slackへのアクセス自体は何らかのgemを使ったほうがいいと思いますが、とりあえずやり方の提案として。 channels.historyに対してoldestを付けてgetすると、そこからのメッセージが取得できます。なので、遡りたい時刻を指定して、結果のmessagesのcountが0であれば、例えば1日分のメッセージがないことを判定できると思います ``` require 'http' require 'json' response = HTTP.post("https://slack.com/api/channels.history", params: { token: 'token', channel: 'channel_id', oldest: (Time.now - (60 * 60 * 24)).to_i, }) puts JSON.parse(response.body)["messages"].count() ```