Search code examples
phpslackslack-api

Bot replying to app_mention event in the wrong channel


I'm trying to work with the slack Event Subscription app_mention, but I'm having some issues.

My backend is PHP, and I'm using this class.

Basically, what's happening is, if I have my bot user in multiple channels and someone mentions the bot, it will only reply in a single channel.

For example;

I have the bot user in 2 channels

  • bot-testing
  • development

If I @ mention the bot in the development channel, it will send it's reply in the bot-testing channel.

My code used to send the message:

$client->to('#' . $event['channel'])->send("Hi. I'm currently under development.");

and my $event variable looks like this:

{"type":"app_mention","text":"<@UFT4EG0Q7> test","user":"UAKTRFH41","ts":"1548783398.055200","channel":"GAMED4PK5","event_ts":"1548783398.055200"}

but decoded obviously.

Why is my bot not replying in the correct channel?


Solution

  • So based on my reading of the PHP client you're using, that's designed for use with Incoming Webhooks.

    Incoming Webhooks have a 1:1 relationship with a conversation/channel, so you can't define the destination for your message in the payload you send to the API.

    If you want to do that, you could try using one of the other PHP SDKs built by the community.