3

こんにちは、Telegram API Telethon をやっています。ここでは、Python コードでグループ メッセージを継続的に聞きたいと考えました。

グループからメッセージを読み取ることはできますが、毎回コードを実行する必要があります。私のコードが同期的にメッセージをリッスンするように実装する方法はありますか?

以下は、グループ内のメッセージを表示するコード スニペットです。その中にリスナーコードを追加する必要があります。

client = TelegramClient('session_read', api_id, api_hash)
client.start()

dialog_count = 50
dialogs = client.get_dialogs(dialog_count)
for i, entity in enumerate(dialogs):

    if entity.name == 'GroupName':
     print('{}'.format(entity.message.message))
4

1 に答える 1

8

Telethon には、ここに記載されているイベント ハンドラがあります。基本的な新しいメッセージ ハンドラーの場合、最初の例は次のようにする必要があります。

from telethon import TelegramClient, events

client = TelegramClient('session_read', api_id, api_hash)

@client.on(events.NewMessage)
async def my_event_handler(event):
    print('{}'.format(event))

client.start()
client.run_until_disconnected()

特定のグループに属していることを確認したい場合は、chatsパラメーター onを使用できevents.NewMessageます。

@client.on(events.NewMessage(chats=("GroupName", "Group2")))
async def my_event_handler(event):
    print(event)

他にも多くのフィルタリング オプションがあるため、以前にリンクされたドキュメントを確認することをお勧めします。

于 2018-12-16T14:02:54.233 に答える