Существует два разных способа отправки сообщения Slack с изображением.
A. Загрузка изображения напрямую с сообщением
Вы можете загрузить изображение непосредственно в Slack и поделиться им в канале. В рамках этого запроса вы также можете добавить комментарий, который будет отображаться в виде сообщения над изображениями. Это самый простой подход, однако ваш комментарий ограничен одной строкой.
Метод API: files.upload
со следующими аргументами:
channels
:Идентификатор одного или нескольких каналов для отображения изображения в initial_comment
: Ваше сообщение
B. Опубликовать сообщение с блоком изображения / вложением
В качестве альтернативы вы можете добавить изображение к обычному сообщению либо в виде блока изображения, либо в качестве дополнительного вложения. Это работает только с общедоступным URL-адресом файла изображения, поэтому сначала вам нужно загрузить свое изображение в хостинг изображений (который может быть вашим рабочим пространством Slack), чтобы получить общедоступный URL-адрес.
В нашем примере мы будем использовать Slack в качестве хостера изображений, но вы можете использовать любой хостер изображений (например, Imgur ) даже свой собственный веб-сервер, если вы получаете общедоступный URL-адрес для своего изображенияfile.
Шаг 1 - Загрузить изображение в Slack
Метод API: files.upload
без особых аргументов, но обязательно получите идентификатор файла из ответа. Не включайте аргумент channels
, иначе изображение будет опубликовано в этом канале.
Шаг 2. Создание общедоступного URL
Далее необходимо пометить загруженный файл как общедоступный. Только тогда он будет доступен через свойство public_url
Метод API: files.sharedPublicURL
с идентификатором файла в качестве аргумента.
Далее необходимо построить прямую ссылку на изображение из ссылки на сайт / permalink_public
свойство файла.
Ссылка на сайт, которую вы получаете с permalink_public
, имеет формат:
https://slack-files.com/{team_id}-{file_id}-{pub_secret}
Прямая ссылка на изображение имеет формат:
https://files.slack.com/files-pri/{team_id}-{file_id}/{filename}?pub_secret={pub_secret}
Так что вам просто нужно извлечь pub_secret
из permalink_public
, и вы сможете построить прямую ссылкук изображению. Другие параметры, которые вы можете получить из вашего файлового объекта.
Шаг 3 - Отправьте сообщение
Наконец, составьте ваше сообщение с URL-адресом изображения либо как Блок изображения , либо как вторичное вложение и отправьте его, используя метод по вашему выбору.
Метод API: chat.PostMessage
или любой другой метод отправки сообщения, вкл.
Ответ на OP
Если вам нужно придерживаться веб-крюков, как это видно из ваших комментариев, и у вас нет доступа к Slack API, я бы предложил загрузить изображение в хостер изображений (например Imgur), а затем используйте подход B.
См. также