Я использую Slack Incoming Webhooks для отправки сообщений на канал Slack из приложения. Мне это нравится, поскольку я могу отправлять сообщения непосредственно из сценариев оболочки.
Однако, идя дальше, я сталкиваюсь с проблемой, которая, по-видимому, не может удалять сообщения.
Приложение имеет два токена доступа:
- токен доступа OAuth
xoxp-012345678901-012345678901-012345678901-0123456789abcdef0123456789abcdef
( это фиктивный токен, но длина совпадает с фактическим токеном ). - доступ пользователя OAuth бота пользователя токен
xoxb-012345678901-012345678901-0123456789abcdef01234567
.
Используя токен доступа OAuth xoxp-
, я могу получить историю канала.
curl "https://slack.com/api/channels.history?token=xoxp-012345678901-012345678901-012345678901-0123456789abcdef0123456789abcdef&channel=CABCDABCD&count=20&pretty=1"
С токеном xoxb-
запрос channels.history
не выполняется с
{
"ok": false,
"error": "not_in_channel"
}
В истории чата у меня есть сообщение, которое я хотел бы удалить. Сообщение было отправлено с использованием входящих веб-хуков, связанных с приложением.
{
"type": "message",
"subtype": "bot_message",
"text": ":heavy_check_mark:",
"ts": "1580968882.000800",
"bot_id": "BABCDABCD",
"blocks": [
{
"type": "section",
"block_id": "5Ov",
"text": {
"type": "mrkdwn",
"text": "text of the message to delete",
"verbatim": false
}
}
]
}
Однако ни один из токенов не работает с chat.delete
. Обе
curl "https://slack.com/api/chat.delete?token=xoxb-012345678901-012345678901-0123456789abcdef01234567&channel=CABCDABCD&ts=1580968882.000800&pretty=1"
и
curl "https://slack.com/api/chat.delete?token=xoxp-012345678901-012345678901-012345678901-0123456789abcdef0123456789abcdef&channel=CABCDABCD&ts=1580968882.000800&pretty=1"
терпят неудачу с
{
"ok": false,
"error": "cant_delete_message"
}
И вопрос: Есть ли способ удалить сообщение опубликовано приложением через входящие запросы Webhooks?
PS. Предоставляются разрешения chat:write:bot
и chat:write:user
.