java-slack-sdk icon indicating copy to clipboard operation
java-slack-sdk copied to clipboard

Not able to add bots to DMs/MPDMs

Open kranti-rh opened this issue 1 year ago • 16 comments

I'm @ mentioning the bot app in a direct message channel but it doesn't respond in the same way as it does in the channel where you get a modal asking if you want to invite it. Additionally, conversations.info gives channel_not_found error for above channel's ID. My bot application configured with all the scopes mentioned here. What I'm doing anything wrong here or it is something that isn't supported as of now in Slack?

kranti-rh avatar Jan 03 '24 08:01 kranti-rh

If you are receiving channel_not_found when passing the channel ID, then I do not think your app has the correct scope for being able to 'see' this channel. Is it a direct message between a single user and the app, or a multi-person direct message?

Can you post all the scopes your app has?

filmaj avatar Jan 03 '24 20:01 filmaj

It is a multi-person direct message. My app has the following scopes:

"scopes": {
            "user": [
                "chat:write"
            ],
            "bot": [
                "app_mentions:read",
                "calls:read",
                "calls:write",
                "channels:history",
                "channels:join",
                "channels:read",
                "chat:write",
                "chat:write.customize",
                "chat:write.public",
                "commands",
                "conversations.connect:read",
                "conversations.connect:write",
                "groups:history",
                "groups:read",
                "groups:write",
                "im:history",
                "im:read",
                "im:write",
                "mpim:history",
                "mpim:read",
                "users.profile:read",
                "users:read",
                "users:read.email",
                "mpim:write",
                "mpim:write.invites"
            ]
        }

kranti-rh avatar Jan 04 '24 11:01 kranti-rh

@kranti-rh I see your app uses both user and bot scopes. This means your app will be issued multiple tokens depending on the situation. Are you sure you are using the bot token, which includes the mpim:read scope, when calling conversations.info? Perhaps you are using the user token, which does not have the relevant required scope?

filmaj avatar Jan 04 '24 18:01 filmaj

yes, i'm using the bot token while calling conversations.info.

kranti-rh avatar Jan 05 '24 08:01 kranti-rh

Hmm, hold on.. re-reading what you said initially:

I'm @ mentioning the bot app in a direct message channel but it doesn't respond in the same way as it does in the channel where you get a modal asking if you want to invite it.

Can you clarify whether your app is a member of the MPDM or not? Are you expecting that the app will be auto-invited into the DM?

If the app is NOT a part of the MPDM, then conversations.info will always return channel_not_found when providing the conversation ID of the MPDM.

filmaj avatar Jan 05 '24 15:01 filmaj

Channel membership is a pre-requisite for many conversation APIs. Given the private nature of DM and MPDM conversations, if the user or app whose access token you are using is not a member in these conversations to begin with, then any API that interacts with this conversation will fail or error out (admin tokens are the exception but that is not at play here). This is to ensure privacy and security.

filmaj avatar Jan 05 '24 15:01 filmaj

Hmm, hold on.. re-reading what you said initially:

I'm @ mentioning the bot app in a direct message channel but it doesn't respond in the same way as it does in the channel where you get a modal asking if you want to invite it.

Can you clarify whether your app is a member of the MPDM or not? Are you expecting that the app will be auto-invited into the DM?

If the app is NOT a part of the MPDM, then conversations.info will always return channel_not_found when providing the conversation ID of the MPDM.

No, isn't a member of the MPDM. Yes, I expect that the app should be auto-invited into the MPDM like it happens in channels. Could you please confirm if it is possible or not?

kranti-rh avatar Jan 05 '24 19:01 kranti-rh

That is NOT the case for DMs or MPDMs. Because of the private nature of these conversations, simply mentioning the app name in a direct message will not auto-invite the app. An end-user has to explicitly invite the bot into a conversations. It may also be possible to open (i.e. start) an MPDM with a bot token via the conversations.open API but I haven't personally experimented with that API myself.

filmaj avatar Jan 05 '24 19:01 filmaj

@filmaj Yes, using conversations.open i was able to start a new private conversation but this is not the solution I'm looking for. My problem is with existing conversations, in those how I can add bot application. Being an end-user I'm not able to invite the bot into the existing DMs or MPDMs conversations.

kranti-rh avatar Jan 10 '24 15:01 kranti-rh

Yes you are correct. It seems you must create a new conversation explicitly with a bot.

filmaj avatar Jan 10 '24 16:01 filmaj

I dug into this a bit. It seems inviting users to existing DMs/MPDMs is a relatively new feature, and it looks like bots/apps were excluded from the initial implementation of this new feature.

I have filed a feature request to extend this ability to apps/bots as well.

filmaj avatar Jan 10 '24 16:01 filmaj

Appreciated @filmaj !!!

kranti-rh avatar Jan 10 '24 16:01 kranti-rh

@filmaj I was just wondering to know that how long this thing gonna take to get fixed.

kranti-rh avatar Jan 24 '24 07:01 kranti-rh

It is a feature request that is being weighed and prioritized by the relevant team. There is no specific timeline but whenever I hear more I will update this issue. It is best not to have any expectations on a timeline at this moment.

filmaj avatar Jan 24 '24 13:01 filmaj

@filmaj cool!

kranti-rh avatar Jan 25 '24 05:01 kranti-rh

@filmaj do we have any update on this?

kranti-rh avatar May 16 '24 10:05 kranti-rh