Как в Salebot скачать файл голосового сообщения в Telegram
CRM-агентство "Нейравенство" - это нетривиальные чат-боты. Иногда требуется работать на низком уровне.
1. В переменных клиента, сделки или в константах проекта создайте переменную save_webhook и присвойте ей значение 1: save_webhook = 1
2. Отправьте в бота, подключенного к Salebot-у, голосовое сообщение
3. Переходите в раздел клиентов и найдите там себя, перейдите в карточку клиента и найдите переменную сделки tg_request. Будет что-то типа:
{"update_id":289341543, "message": {"message_id":178, "from":{"id":210539493,"is_bot":false, "first_name":"Николай", "last_name":"Васильев (чат-боты;CRM;Битрикс24)", "username":"khibinite","language_code":"ru","is_premium":true}, "chat":{"id":210539493,"first_name":"Николай", "last_name":"Васильев (чат-боты;CRM;Битрикс24)", "username":"khibinite","type":"private"}, "date":1684764366, "voice":{"duration":2,"mime_type":"audio\/ogg", "file_id":"AwACAgIAAxkBAAOyZGt2zmeC3TedHTUf13t9dUwWI5wAAvAyAAKqiFlLl-1lw5QSQjEvBA", "file_unique_id":"AgAD8DIAAqqIWUs","file_size":44513}}}
4. Чтобы получить имя файла, нужно отправить get-запрос по адресу:
https://api.telegram.org/bot<token>/getFile?file_id=<file_id>
где <token> вашего бота (берётся в BotFather или в настройках канала Salebot)
<file_id> - file_id из JSON-набора выше (предпоследний параметр).
5. Получаем следующий результат:
{"ok":true, "result":{ "file_id":"AwACAgIAAxkBAAOyZGt2zmeC3TedHTUf13t9dUwWI5wAAvAyAAKqiFlLl-1lw5QSQjEvBA", "file_unique_id":"AgAD8DIAAqqIWUs", "file_size":44513, "file_path":"voice/file_5.oga"}}
Имя файла и папка содержится в параметре file_path
6. Теперь файл голосового сообщения можно скачать по адресу
https://api.telegram.org/file/bot<token>/<file_path>