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