簡體   English   中英

使用 Telethon 發送 Telegram 消息:某些實體參數有效,其他參數無效?

[英]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 3333344444的兩組(實際上是超級組)中。

我可以將1111133333指定為實體,並且消息會正確發送(分別發送給第一個人或第一組)。 但是,如果我指定2222244444 ,則會出現錯誤:

找不到與“{}”'.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM