如何使用 Slack API 删除消息回复?

How to delete message replies using Slack API?

当我尝试使用 Slack API 删除声称频道不存在的回复时出现错误。

为了验证它,我正在调用:

https://slack.com/api/channels.history?token={token}&channel={channel}&count=1&inclusive=true&latest={ts}&oldest={ts}

然后我收到消息。

我要回复的消息是这条消息:

{
    "ok": true,
    "latest": "1540555927.024300",
    "oldest": "1540555927.024300",
    "messages": [
        {
            "text": "This message was deleted.",
            "edited": {
                "user": "UD6SLKGEP",
                "ts": "1540555928.000000"
            },
            "type": "message",
            "subtype": "tombstone",
            "user": "USLACKBOT",
            "hidden": true,
            "thread_ts": "1540555927.024300",
            "reply_count": 1,
            "replies": [
                {
                    "user": "UD6SLKGEP",
                    "ts": "1540555928.024401"
                }
            ],
            "subscribed": false,
            "unread_count": 1,
            "ts": "1540555927.024300"
        }
    ],
    "has_more": false,
    "is_limited": true
}

如您所见,有一个 "This message was deleted." 似乎是自动生成的,并且一直显示,因为我仍然有与之关联的回复。

如果我调用同一个端点传递回复 ts (1540555928.024401),对于同一个频道我得到这个:

{
    "ok": true,
    "latest": "1540555928.024401",
    "oldest": "1540555928.024401",
    "messages": [
        {
            "type": "message",
            "user": "UD6SLKGEP",
            "text": "45d7bc14a6fa03 23456789 abcdefghijklmnop",
            "bot_id": "BD6AJUY8G",
            "thread_ts": "1540555927.024300",
            "ts": "1540555928.024401"
        }
    ],
    "has_more": false,
    "is_limited": true
}

表示那里有一条消息,是另一条消息的回复。

当我尝试删除此回复消息时,问题开始了。

我称这个端点为:

https://slack.com/api/chat.delete?token={token}

将通道和回复 ts 作为有效负载传递:

{
    "channel": "CD65XB2D7",
    "message_ts": "1540555928.024401"
}

现在我没有删除消息,而是收到了这样的回复:

{
    "ok": false,
    "error": "channel_not_found",
    "warning": "missing_charset",
    "response_metadata": {
        "warnings": [
            "missing_charset"
        ]
    }
}

但该频道存在,我也用它来删除其他消息。当我尝试仅从消息中删除回复时会发生这种情况。

删除回复消息有什么特别之处吗?

我刚发现这里的问题:

https://api.slack.com/changelog/2017-10-keeping-up-with-the-jsons#methods

由于我这边的某些原因,它适用于消息,但不适用于回复。我必须按照 link 上的建议,使用 Bearer 将令牌移动到 header 上的 "Authorization"。