Нет.Slack не позволяет вам получить доступ к локальному компьютеру их пользователей через приложение / API Slack.
Решение 1. Загрузка через браузер
Самым простым решением будет предложить прямую ссылку для загрузки всообщение Slack, например, с помощью кнопки Link .Когда пользователь щелкает по нему, ему предлагается загрузить файл на его локальный компьютер.
Вот пример из одного из моих приложений:
И один разщелкнув по нему, вы получите это окно:
Чтобы разрешить загрузку через браузер, вам необходимо установить соответствующие заголовки и отправить содержимое файла в браузер.
Один из подходов состоит в том, чтобы иметь вспомогательный скрипт для фактической загрузки и включить ссылку на вспомогательный скрипт в кнопке ссылки (вы также можете включить некоторые параметры в ссылку, которая определяет, какой файл загружается).
Затем вспомогательный скрипт выполняет следующие действия:
- Извлекает загружаемый файл (например, изображение в формате PNG)
- Устанавливает заголовки, чтобы разрешить загрузку через браузер
- Отправьте файл в браузер
Вот пример на PHP:
<?php
$filename = "demo.png";
$file = file_get_contents($filename);
header('Content-Disposition: attachment;filename=' . $filename);
header('Content-Type: image/png');
echo $file;
die();
Для получения дополнительной информации о заголовках загрузок см. Также этот ответ на SO.
Решение 2. Загрузить в Slack
В качестве альтернативы вы можете загрузить файл в рабочее пространство Slack пользователя с помощью file.upload
метода API.Таким образом, пользователю не нужно ничего скачивать, и вы можете удалить файл с вашего сервера после того, как ваше приложение завершит обработку.