【问题标题】:channel_not_found exception while sending the message through incoming webhook通过传入的 webhook 发送消息时出现 channel_not_found 异常
【发布时间】:2017-01-08 09:10:26
【问题描述】:

我使用传入的 webhook 来发送消息,但是我使用类似这样的东西覆盖了 channelID 以发送到特定的频道(如这里提到的:https://api.slack.com/incoming-webhooks

   {
"channel": "#my_channel",
"text": "This message will appear in #other-channel"
  } 

当我提供我的频道 ID 时,我能够将消息接收到 slack,但是当我将频道 ID(有效频道 ID)提供给其他人时,我得到了 channel_not_found 异常。

请告诉我可能出了什么问题。

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

    假设您所说的“其他人频道 ID”是指其他人是(但您不是)成员的私人频道的 ID,这是正常的 Slack 行为。

    您不能将消息发送到您(作为创建传入 webhook 的用户)不是其成员的私人频道。事实上,您不属于您的所有私有通道对您都是不可见的,并且对于传入的 webhook 和 Slack API,这种行为是相同的。

    我使用过的解决此功能的方法是使用特殊管理员用户(例如“Slack 管理员”)创建传入 webhook,并确保他被邀请进入所有相关的私人频道

    【讨论】:

    • 哦,明白了!!!.......但是你能详细说明一下你上面提到的解决方法吗!!!我必须尽快解决这个问题
    【解决方案2】:

    我遇到了同样的问题,必须指定标头类型。在将机器人设置为以用户身份访问频道后,我需要将Content-Type 烘焙为 JSON(有点令人沮丧,因为请求的默认标头是 JSON)。

    const sendAPIresp = (obj) => {
        var options = {
            method: 'POST',
            url: 'https://slack.com/api/chat.postMessage',
            headers:
            {
                Authorization: 'Bearer NOMNOMNOM',
                'Content-Type': 'application/json'
            },
            body:
            {
                channel: 'THECOOLKIDSCLUB',
                text: 'Hello from the world',
            },
            json: true
        };
    
        request(options, function (error, response, body) {
            if (error) throw new Error(error);
    
            console.log(body);
        });
    }
    

    【讨论】:

      【解决方案3】:

      如果您使用的是新的 Slack Bot 令牌范围,请确保您也在使用 Bot User OAuth Access Token,而不是旧的基于用户的 OAuth Access TokenOAuth Access Token 不会立即失败,但始终会受到请求安装应用的用户的权限的限制。

      这会导致机器人用户和其他工作区用户之间的 IM 不可见,正如 Erik 所描述的那样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-30
        • 2018-09-09
        • 1970-01-01
        • 2012-10-12
        相关资源
        最近更新 更多