Pyrogram开发UserBot:如何检测用户在线并发送消息
Pyrogram检测用户在线并发送消息的解决方案
Pyrogram没有内置的is_user_online函数,要实现检测用户在线状态并发送消息的功能,你可以通过获取用户对象的status字段来判断,具体实现如下:
核心逻辑
通过app.get_users()方法获取目标用户的完整信息,其中user.status字段会返回用户的在线状态,结合UserStatus枚举类即可判断用户是否在线。
修正后的完整代码
from pyrogram import Client from pyrogram.types import UserStatus app = Client( "my_account", api_id=111111111, api_hash='bbbbbbbbbbbbbbbbb' ) chat_id = 777777777 with app: # 获取目标用户的信息对象 user = app.get_users(chat_id) # 判断用户是否处于在线状态 if user.status == UserStatus.ONLINE: app.send_message(chat_id=chat_id, text='Hello!')
关键说明
UserStatus枚举包含多种状态值:ONLINE(在线)、OFFLINE(离线)、RECENTLY(最近在线)、LAST_WEEK(一周内在线)、LAST_MONTH(一月内在线)等,可根据需求选择判断条件。- 使用
get_users方法需要确保你有权限访问该用户信息(如已添加好友、同属一个群组),否则会触发权限错误。
内容的提问来源于stack exchange,提问作者乡TOBY乡
相关产品推荐
相关产品推荐

