Невозможно удалить сообщение, отправленное через Incoming Webhooks - PullRequest
0 голосов
/ 06 февраля 2020

Я использую 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.

1 Ответ

1 голос
/ 06 февраля 2020

Да, но владелец токена должен быть администратором, чтобы иметь право удалять сообщения других пользователей / приложений.

Чтобы уточнить: это не имеет ничего общего с областями OAuth, но с ролью Slack пользователя, которому принадлежит токен.

...