LoginSignup
5
4

More than 5 years have passed since last update.

hubot-slack v4でチャネルのID、名前変換

Posted at

hubot-slack v4になってメッセージを送信する場合、チャネル名(#general)ではなく、チャネルID(Cxxxxx)で送信する必要があります。

respond 等でメッセージを受けて処理する分には msg.envelope.room にチャネルIDが設定されている為、簡単に処理できるのですが node-cron 等を利用してチャネル指定で送信する場合には困ってしまいます。

slack apiにチャネルリストを取得するものがありますが、出来ればhubot内で完結させたい…
https://api.slack.com/methods/channels.list/test

なので、以下メソッドを利用するとid->名前、名前->idの変換ができます。

チャネルID -> チャネル名

// room_id...チャネルID
robot.adapter.client.rtm.dataStore.getChannelGroupOrDMById(room_id).name

チャネル名 -> チャネルID

// room_name...チャネル名
robot.adapter.client.rtm.dataStore.getChannelOrGroupByName(room_name).id;
5
4
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
5
4