Monday, December 11, 2017

Identifying DIRECT_MESSAGE, CHANNEL_MESSAGE, & GROUP_MESSAGE in Slack API Event

A simply way to determine if a message is a DM or not; if a channel ID begins with a:
  • C, it's a public channel
  • D, it's a DM with the user
  • G, it's either a private channel or multi-person DM
However, these values aren't set in stone and could change at some point, or be added to.
So if that syntax goes away, another way to detect a DM to use both channels.info and groups.info. If they both return “false” for the “ok” field, then you know it’s a DM.
Note:
  • channels.info is for public channels only
  • groups.info is for private channels and multi-person DMs only
Bonus info: Once you detect a that a message is a DM, use either the user ID or channel ID and search for it in the results of im.list; if you find it, then you’ll know it’s a DM to the bot.
  • “id” from im.list is the channel ID
  • “user” from im.list is the user ID from the person DM’ing with the bot
  • You don’t pass in the bot’s user ID, because it’s extracted from the token
Note :
Private channel is 'W

Source :
https://stackoverflow.com/questions/41111227/how-can-a-slack-bot-detect-a-direct-message-vs-a-message-in-a-channel

No comments:

Post a Comment