Telegram API. Бот не отправляет второй раз документ в чат
Суть проблемы:
Я делаю бота для отправки сообщения в чаты, отправляется три сообщения(в один чат) name, document, msg при первой отправке отправляются все три сообщения, при отправке в остальные чаты отправляются name, msg, но document не отправляется
Прилагаю код(токены и id чата специально убрал для вопроса)(эти 3 респонса находятся в цикле for который проходится по списку с id чатов и вставляет их в параметры запроса):
document = request.FILES['document']
response = requests.post(
url='https://api.telegram.org/token/sendMessage',
data={'chat_id': chat_id, 'text': request.POST["name"]}
).json()
response = requests.post(
f'https://api.telegram.org/token/sendDocument',
data={'chat_id': chat_id},
files={"document": document}
).json()
response = requests.post(
url='https://api.telegram.org/token/sendMessage',
data={'chat_id': chat_id, 'text': request.POST["msg"]}
).json()
P.S. Если это важно, часть представления у меня в проекте Django
Ответы (1 шт):
для отправки документа с подписью (caption) укажите это в data:
response = requests.post(f'https://api.telegram.org/bot{bot_token}/sendDocument', data={'chat_id': 123, 'caption': '123'},
files={"document": 'https://telegram.org/img/SiteiOS.jpg'}).json()
для получения информации об отправленном сообщении достаточно выполнить
print(response.json())
>>> {'ok': True, 'result': {'message_id': 5834, 'from': {'id': 995, 'is_bot': True, 'first_name': 'violet', 'username': 'violet'}, 'chat': {'id': 123, 'first_name': '', 'last_name': 'Violet', 'username': 'Violet', 'type': 'private'}, 'date': 1626296135, 'document': {'file_name': 'document', 'file_id': 'BQACAgIAAxkDAAIWymDvT0f40hbaHsGfaYE5s9lOlyOcAAK7DQAC82qAS0iXZRrvOJqAIAQ', 'file_unique_id': 'AgADuw0AAvNqgEs', 'file_size': 36}, 'caption': '123'}}
для получения file_id:
print(response.json()['result']['document']['file_id'])

