首页 > 解决方案 > Telethon 不允许机器人加入频道(您尝试调用的方法无法作为机器人执行(由 JoinChannelRequest 引起)

问题描述

我是 Telethon 的新手,我仍然有疑问。

我的任务似乎很简单:我想创建一个机器人来从频道中抓取一些信息,但我卡在了第一步:将机器人加入到 chanel。

为了确保我做得很好,我在telethon.dev页面中寻找并找到了这段代码,我正在尝试:

from telethon.sync import TelegramClient
from telethon import functions, types

api_id = XXXXXXXXXXXX
api_hash = 'XXXXXXXXXXXXXXXXXXXXXX'
token= 'XXXXXXXXXXXXXXXXXXXXXX'

with TelegramClient('anon', api_id, api_hash) as client:
    result = client(functions.channels.JoinChannelRequest(
        channel='publicchanel'
    ))
    print(result.stringify())

我还尝试使用(当然,更改需要更改/添加的内容)以机器人身份登录:

bot = TelegramClient('bot', api_id, api_hash).start(bot_token=token)

但我也遇到了同样的错误:

telethon.errors.rpcerrorlist.BotMethodInvalidError:bot 用户的 API 访问受到限制。您尝试调用的方法无法作为机器人执行(由 JoinChannelRequest 引起)

我究竟做错了什么?

PD:如果重要的话:我使用Debian10作为操作系统

标签: python-3.xtelethon

解决方案


这不是 Telethon 限制,而是 Telegram 限制。机器人不能自行加入群组或频道,需要由用户添加。


推荐阅读