首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyrogram: MTProto用于读取和复制电报消息

Pyrogram: MTProto用于读取和复制电报消息
EN

Stack Overflow用户
提问于 2021-12-28 15:58:03
回答 1查看 1.3K关注 0票数 0

我使用一个非常简单的代码来收听两个特定的电报输入通道,并将所有接收到的消息复制到一个目标信道。我使用Pyrogram,它实现了MTProto,因为我不是源通道的管理员,我只是一个读者--因此我不能使用常规的BOT API,因为我的BOT不会被添加到源通道中--相反,我需要依赖用户Bot -> MTProto。

到目前为止,我一直在使用Pyrogram 1.2.9,直到4周前它才开始正常工作。

我的代码非常简单明了:

代码语言:javascript
复制
#!/usr/bin/env python3
from pyrogram import Client
from pyrogram import filters
import sys, traceback
from datetime import datetime

# ~~~~~~ CONFIG ~~~~~~~~ #
ACCOUNT = "..."
PHONE_NR = '...'

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

# Channel IDs...
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)
        # copy() so there's no "forwarded from" header
        message.copy(chat_id=OUTPUT__MT_FORWARD_CHAT_ID,  caption="")

    app.run() 

奇怪的是:如果删除过滤器f,就会看到来自各种聊天/通道的消息被成功打印,并复制到目标通道。

但是,仅针对一个特定的源频道,即使我在智能手机上的电报应用程序中看到了接收到的消息,我也无法看到它们--是否添加了一个新设置,禁止MTProto用户Bots读取特定的组/频道?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-30 14:00:56

是。添加了一个名为Restrict Saving Content (或content protection)的新设置

任何频道所有者都可以启用它,这将阻止用户转发甚至复制包括文本在内的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70509473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档