【问题标题】:"ValueError: Could not find the input entity for PeerChannel" with Bot“ValueError:找不到 PeerChannel 的输入实体”与 Bot
【发布时间】:2021-11-23 06:38:02
【问题描述】:

对于我的一生,我无法弄清楚这一点。 我创建了一个新的 Telegram Bot 并创建了一个新频道,我在其中将我的 bot 添加为管理员。

在阅读了 100 次 docs 之后,我试图以某种方式“看到”实体,但是:

  • get_dialogs() 不允许用于机器人
  • client.get_entity('') 不允许用于机器人

不知道还能做什么……

我确实在频道中发布了一些消息。

我的代码看起来像:

from telethon import TelegramClient

telethon_client = TelegramClient(
    api_id=int(config['TELETHON_API_ID']),
    api_hash=config['TELETHON_API_HASH'],
    session=config['TELETHON_SESSION']
).start(bot_token=config['TELEGRAM_BOT_TOKEN'])

with telethon_client:
   telethon_client.loop.run_until_complete(__async_get_users(chat_id))

async def __async_get_users(chat_id):
    channel = await telethon_client.get_entity(chat_id) # -100xxxxx
    tg_users = await telethon_client.get_participants(channel)

感谢任何帮助、领导或想法!

【问题讨论】:

  • 当机器人在频道中时,在收到新消息更新后(您可能需要将其设为管理员或在@BotFather 中禁用隐私模式),然后库应该“看到”频道.
  • 嗨@Lonami,非常感谢您的提示。我试图关闭群组隐私(它已经是管理员)并在频道中重新发送消息,但我仍然收到同样的错误:/还有其他想法吗?
  • 机器人获取通道访问哈希的唯一方法是通过更新。电报应该发送实体,图书馆应该将它们添加到缓存中。奇怪的是它不是。

标签: python bots telegram telethon


【解决方案1】:

好的,所以,不确定是什么导致了这个问题的解决,但我做到了:

  • 按照@Lonami 的建议在@BotFather 中禁用群组隐私模式
  • 在群里发了其他消息
  • 已将机器人删除并重新添加到组中

我仍然有这个问题,但是在清除会话之后,它现在可以正常工作了!

感谢@Lonami 的帮助!

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 1970-01-01
    • 2021-12-12
    • 2021-02-17
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    相关资源
    最近更新 更多