Forum >> Programmazione Python >> Web e Reti >> Problemi con bot telegram

Pagina: 1

Un paio di mesi fa ho creato un bot. Fino a qualche giorno fa ha funzionato perfettamente, poi si è bloccato per magia. Dopo diversi tentativi ho scoperto che, mettendo i bot nel canale che gestisco, si impallano definitivamente e danno errore all'infinito.
Ecco il codice:

import telepot
import time

bot = telepot.Bot("token")

def handle(msg):
content_type, chat_type, chat_id = telepot.glance(msg) # restituisce 3 variabili: content_type, chat_type, chat_id
print(content_type, chat_type, chat_id)

nome = msg['from']['first_name']

if content_type == 'text':
bot.sendMessage(chat_id, 'Ciao %s, mandami un video a cui applicare la didascalia...\nIl nome della didascalia verrà preso dal nome originale del file' % nome)

if content_type == 'video' and chat_id == mio id:
file_id = msg['video']['file_id']
file_name = msg['video']['file_name']

chat_id, message_id = telepot.message_identifier(msg)
print(chat_id, message_id)

bot.sendVideo(chat_id='@canale',
video=file_id,
duration=None,
height=None,
caption=file_name,
parse_mode=None,
supports_streaming=True,
disable_notification=None,
reply_to_message_id=None,
reply_markup=None)

if content_type == 'video' and chat_id != il mio id:
file_id = msg['video']['file_id']
file_name = msg['video']['file_name']

chat_id, message_id = telepot.message_identifier(msg)
print(chat_id, message_id)

bot.sendVideo(chat_id,
video=file_id,
duration=None,
height=None,
caption=file_name,
parse_mode=None,
supports_streaming=True,
disable_notification=None,
reply_to_message_id=None,
reply_markup=None)


bot.message_loop(handle)

while 1:
time.sleep(3)Ecco l'errore:

Traceback (most recent call last):
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 1191, in get_from_telegram_server
    offset = max([relay_to_collector(update) for update in result]) + 1
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 1191, in <listcomp>
    offset = max([relay_to_collector(update) for update in result]) + 1
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 1164, in relay_to_collector
    key = _find_first_key(update, ['message',
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 68, in _find_first_key
    raise KeyError('No suggested keys %s in %s' % (str(keys), str(d)))
KeyError: "No suggested keys ['message', 'edited_message', 'channel_post', 'edited_channel_post', 'callback_query', 'inline_query', 'chosen_inline_result', 'shipping_query', 'pre_checkout_query'] in {'update_id': 360389344, 'my_chat_member': {'chat': {'id': -1001342579018, 'title': 'canale', 'username': 'canale', 'type': 'channel'}, 'from': {'id': 651746712, 'is_bot': False, 'first_name': 'Gianmarco', 'username': 'mio username', 'language_code': 'it'}, 'date': 1615790632, 'old_chat_member': {'user': {'id': 1688038895, 'is_bot': True, 'first_name': 'Didascalia Automatica', 'username': 'auto_didascalia_bot'}, 'status': 'left'}, 'new_chat_member': {'user': {'id': 1688038895, 'is_bot': True, 'first_name': 'Didascalia Automatica', 'username': 'auto_didascalia_bot'}, 'status': 'administrator', 'can_be_edited': False, 'can_manage_chat': True, 'can_change_info': True, 'can_post_messages': False, 'can_edit_messages': False, 'can_delete_messages': False, 'can_invite_users': False, 'can_restrict_members': True, 'can_promote_members': False, 'can_manage_voice_chats': True, 'is_anonymous': False}}}"
Traceback (most recent call last):
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 1191, in get_from_telegram_server
    offset = max([relay_to_collector(update) for update in result]) + 1
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 1191, in <listcomp>
    offset = max([relay_to_collector(update) for update in result]) + 1
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 1164, in relay_to_collector
    key = _find_first_key(update, ['message',
  File "C:\Users\GianmarcoAppData\Local\Programs\Python\Python38\lib\site-packages\telepot\__init__.py", line 68, in _find_first_key
    raise KeyError('No suggested keys %s in %s' % (str(keys), str(d)))
KeyError: "No suggested keys ['message', 'edited_message', 'channel_post', 'edited_channel_post', 'callback_query', 'inline_query', 'chosen_inline_result', 'shipping_query', 'pre_checkout_query'] in {'update_id': 360389344, 'my_chat_member': {'chat': {'id': -1001342579018, 'title': 'canale', 'username': 'canale', 'type': 'channel'}, 'from': {'id': 651746712, 'is_bot': False, 'first_name': 'Gianmarco', 'username': 'mio username', 'language_code': 'it'}, 'date': 1615790632, 'old_chat_member': {'user': {'id': 1688038895, 'is_bot': True, 'first_name': 'Didascalia Automatica', 'username': 'auto_didascalia_bot'}, 'status': 'left'}, 'new_chat_member': {'user': {'id': 1688038895, 'is_bot': True, 'first_name': 'Didascalia Automatica', 'username': 'auto_didascalia_bot'}, 'status': 'administrator', 'can_be_edited': False, 'can_manage_chat': True, 'can_change_info': True, 'can_post_messages': False, 'can_edit_messages': False, 'can_delete_messages': False, 'can_invite_users': False, 'can_restrict_members': True, 'can_promote_members': False, 'can_manage_voice_chats': True, 'is_anonymous': False}}}"





stesso problema, temo dovuto al fatto che dal mio telefono per elimiare il bot l'ho inavvertitamente bloccato, secondo voi c'è un modo di sbloccarlo?





Sembrerebbe comunque un limite della libreria telepot che non è più supportata



Si è un problema della libreria, non supporta le Api più recenti
Capisco, anch'io ho sempre avuto un problema con questi bot su Telegram e con le app in generale sul mio telefono. Ma penso che sia solo perché sono diventato troppo vecchio per le nuove tecnologie, e non posso nemmeno più gestire un'app ajax, anche se è elementare. Ecco perché i bot in Telegram sono un totale deserto per me.


Pagina: 1



Esegui il login per scrivere una risposta.