@Msondre

Как удалить сообщение о закрепе?

payload = {
                'chat_id': chatId,
                'message_id': messageId,
                'disable_notification': True
            }
pinResponse = requests.post(f'https://api.telegram.org/bot{botToken}/pinChatMessage', payload)

Я закрепляю сообщение, и в появляется надпись "bot закрепил сообщение". pinResponse не имеет id, поэтому удалить это сообщение по id не получится. Есть другие способы удалить надпись о закрепе?
  • Вопрос задан
  • 314 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Вообще, как вариант, если бот работает вот так без лонгполлинга, то можно получить последние апдейты, там уже циклом проходим по всем апдейтам, и если в нём есть поле pinned_message + совпадают параметры, то удаляем его

if pinResponse:
    updates = requests.get(f'https://api.telegram.org/bot{botToken}/getUpdates', params={'allowed_updates': 'message'}).json()

    for update in updates['result']:
        if update['message'].get('pinned_message'):
            if update['message']['pinned_message']['message_id'] == messageId and update['message']['chat']['id'] == chatId:
                requests.post(f'https://api.telegram.org/bot{botToken}/deleteMessage', json={'chat_id': chatId, 'message_id': update['message']['message_id']})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы