如何使用 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"。
当我尝试使用 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"。