使用maknz/slack包无法向指定Slack用户发送消息是什么原因?
maknz/slack包无法向指定用户发送消息的解决方案
- 确认客户端初始化模式:若使用
incoming-webhook地址初始化客户端,该模式默认仅允许发送到webhook绑定的固定频道,不支持自定义发送目标。需使用应用安装到工作区后生成的Bot User OAuth Token初始化客户端,才可正常调用to方法指定发送对象。 - 补充缺失的权限配置:现有权限缺少私信发送、用户信息读取的必要权限,需在应用清单的bot权限下新增以下配置:
权限修改完成后,需重新将应用安装到工作区,新配置才会生效。scopes: bot: - chat:write.im - users:read - 调整发送目标的传参格式:Slack新版API已不支持直接传入@用户名作为发送目标,需先获取目标用户的成员ID(U开头的唯一字符串,可通过调用users.list接口查询),直接将ID传入to方法即可,示例代码如下:
$client->to('UXXXXXXXXXX')->send('Yo!'); - 额外校验项:确认目标用户与应用归属同一工作区,且应用未被限制私信发送权限。
内容的提问来源于stack exchange,提问作者Dima Makovskiy
相关产品推荐
相关产品推荐

