我使用的是马拉松式节目的send_message功能将消息发送到不同的聊天记录。
有时候,目的地是另一个用户(只是一个聊天的常规one),有时一个群体,有时是超群的,有时一个通道(其中我是管理员)。
如果我理解正确,语法应该是:
client.send_message(entity,text)
但我想不出什么entity
参数应该是在不同的情况。 我感到特别困惑的指定整数ID似乎对某些群体做工精细,但不是为别人。
例如:
我与别人谁user_id说明正常的1对1聊天11111
,同时还与谁已user_id说明另一个人22222
。
而且我在这已经CHANNEL_ID两组(超群实际上) 33333
和44444
。
我可以指定11111
或33333
的实体,以及(分别给第一人或第一组)的消息被正确地发送。 但是,如果我指定的22222
或44444
,我发现了一个错误:
无法找到与“{}””任何实体。格式(串)
ValueError异常:找不到对应于“22222”的任何实体
我也收到来自使用相同的马拉松式节目实例的所有4个聊天mesasges,而这一切工作的罚款。
所以我的问题是: 我怎么得到send_message正确的实体数据()?
我建议您阅读文档的这一部分( 实体 )
例如,我想将消息发送到与用户名的用户: alix
client = TelegramClient('session_name',
api_id,
api_hash,
)
client.start()
destination_user_username='alix'
entity=client.get_entity(destination_user_username)
client.send_message(entity=entity,message="Hi")
或者我希望将消息发送到与用户名的频道: test_ali3
client = TelegramClient('session_name',
api_id,
api_hash
)
client.start()
destination_channel_username='test_ali3'
entity=client.get_entity(destination_channel_username)
client.send_message(entity=entity,message="Hi")
或者我想将消息发送给一组与invite_link: https://t.me/joinchat/Bn4WIhMF1T_ZAF-yM6WbHw
client = TelegramClient('session_name',
api_id,
api_hash
)
client.start()
destination_group_invite_link='https://t.me/joinchat/Bn4WIhMF1T_ZAF-yM6WbHw'
entity=client.get_entity(destination_group_invite_link)
client.send_message(entity=entity,message="Hi")
我希望对你有用。
文章来源: Sending Telegram messages with Telethon: some entity parameters work, others don't?