slackのbotなどでchannelにリマインダーを設定する

api.slack.com

Slack APIのドキュメントを見るとAPIからはuserに対してのみリマインダーを設定できるように見えます。しかし、実際にはchannelに対しても設定できます。

まず、試しにuserプロパティにチャンネル名を入れてAPIを叩いてみます。

$ node index.js
{ ok: false, error: 'user_not_found' }

すると上のようにユーザが存在しないというエラーが返ってきます。 ここでおもむろにuserプロパティをchannelプロパティに変えると、

$ node index.js
{ ok: false, error: 'channel_not_found' }

というエラーになり、channelプロパティが存在することが分かります。 ここで渡す値をチャンネル名からchannel IDに変えてみます (IDはconversations.list method | Slackを使ったり、Slackクライアントでchannelへのリンクをコピーしたりすることで取得できます)。 すると、

$ node index.js
{ ok: true,
  reminder: {}}

のような形のレスポンスが返ってきて、無事リマインダーをchannelに設定できました。