You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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乡

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:45:31