[英]Sending Telegram messages with Telethon: some entity parameters work, others don't?
我正在使用 Telethon 的send_message函數將消息發送到各種聊天。
有時,目的地是另一個用戶(只是一個普通的聊天),有時是一個組,有時是一個超級組,有時是一個頻道(我是其中的管理員)。
如果我理解正確,語法應該是:
client.send_message(entity,text)
但我無法弄清楚entity
參數在不同情況下應該是什么。 我發現特別令人困惑的是,指定整數 id 似乎對某些組工作正常,但對其他組則不然。
例如:
我與擁有 user_id 11111
的人以及擁有 user_id 22222
的另一個人進行正常的一對一聊天。
此外,我在具有 channel_id 33333
和44444
的兩組(實際上是超級組)中。
我可以將11111
或33333
指定為實體,並且消息會正確發送(分別發送給第一個人或第一組)。 但是,如果我指定22222
或44444
,則會出現錯誤:
找不到與“{}”'.format(string) 對應的任何實體
ValueError:找不到與“22222”對應的任何實體
我還使用同一個 Telethon 實例接收來自所有 4 個聊天的消息,而且一切正常。
所以我的問題是:如何為 send_message() 獲取正確的實體數據?
我建議閱讀文檔的這一部分([entities][1])
例如,我想將消息發送給用戶名為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")
或者我想將消息發送到帶有邀請鏈接的組: https://t.me/joinchat/Bn4WIhMF1T_ZAF-yM6WbHw
: //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")
我希望對你有用。 [1]: https ://docs.telethon.dev/en/stable/concepts/entities.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.