es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pyrogram: MTProto para leer y copiar mensajes de Telegram

Estoy utilizando un código bastante simple para escuchar dos canales de entrada específicos de Telegram y copiar todos los mensajes recibidos en un canal de destino. Estoy utilizando Pyrogram, que implementa MTProto, porque NO soy el administrador del canal de origen, solo soy un lector, por lo tanto no puedo usar la API regular de BOT porque mi BOT no se agregará a los canales de origen, en su lugar, necesito depender de una API de Bot de Usuario -> MTProto.

Hasta ahora, estaba usando Pyrogram 1.2.9 y funcionaba bien hasta quizás hace 4 semanas.

Mi código es bastante simple y directo:

#!/usr/bin/env python3
from pyrogram import Client
from pyrogram import filters
import sys, traceback
from datetime import datetime

# ~~~~~~ CONFIGURACIÓN ~~~~~~~~ #
ACCOUNT = "..."
PHONE_NR = '...'

# ID y Hash de API de https://my.telegram.org/auth?to=apps
API_ID = 58111111111
API_HASH = "2234tsdfxxxxxxxxxxxxxxxxxxxxx65"

# IDs de canales...
INPUT__official = -100132xxxxxx        
INPUT__testchannel = -100164yyyyyy    
OUTPUT__MT_FORWARD_CHAT_ID = -100146xxxxx
# ~~~~~~~~~~~~~~~~~~~~~~ #

try:
    app = Client(
        ACCOUNT,
        phone_number=PHONE_NR,
        api_id=API_ID,
        api_hash=API_HASH
    )

    f = filters.chat(INPUT__official) | filters.chat(INPUT__testchannel)

    @app.on_message(f)
    def my_handler(client, message):
        print(message)
        # copiamos() para no tener el encabezado "reenviado desde"
        message.copy(chat_id=OUTPUT__MT_FORWARD_CHAT_ID, caption="")

    app.run() 

Lo extraño es que si elimino el filtro f, veo mensajes de varios chats/canales que se imprimen correctamente y también se copian en el canal de destino.

Pero solo para UN canal de origen específico, no puedo ver ningún mensaje recibido, a pesar de que los veo en mi aplicación de Telegram en mi teléfono inteligente. ¿Se agregó alguna configuración nueva que prohíba a los Bots de Usuario de MTProto leer grupos/canales específicos?

¡Muchas gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El experto en tecnología de la información está enfrentando un problema con el código de Pyrogram que está utilizando para escuchar dos canales de entrada específicos de Telegram y copiar todos los mensajes recibidos en un canal objetivo. El código utiliza Pyrogram, que implementa MTProto, ya que el experto en tecnología de la información no es el administrador del canal fuente y no puede utilizar la API de BOT regular. En su lugar, necesitan confiar en una API de User Bot – MTProto.

    El código funcionaba bien hasta hace aproximadamente 4 semanas, pero ahora el experto en tecnología de la información no puede ver ningún mensaje recibido de un canal fuente específico, aunque puede verlos en su aplicación de Telegram en su teléfono inteligente. El experto en tecnología de la información sospecha que puede haber una nueva configuración que prohíbe a los User Bots de MTProto leer grupos o canales específicos.

    El código de Pyrogram en sí mismo es bastante simple y directo. Define los canales de entrada y el canal objetivo utilizando sus ID, configura el cliente de Pyrogram con el ID de API, el hash de API y el número de teléfono, y utiliza el filtro de Pyrogram para escuchar los mensajes de los canales de entrada. Cuando se recibe un mensaje, se imprime y se copia en el canal objetivo sin un encabezado de “reenviado desde”.

    Para solucionar este problema, el experto en tecnología de la información puede necesitar verificar si hay alguna configuración nueva que impida que los User Bots de MTProto accedan a canales o grupos específicos. También pueden necesitar actualizar su versión de Pyrogram, ya que el problema comenzó hace aproximadamente 4 semanas cuando el experto en tecnología de la información estaba utilizando Pyrogram 1.2.9. Actualizar a la última versión de Pyrogram puede resolver el problema. Además, el experto en tecnología de la información puede necesitar verificar si hay problemas de permisos con el canal de entrada o si han sido removidos del canal.

Comments are closed.