• 简体中文
  • 推送通知 API

    推送规则

    推送规则控制哪些事件生成通知。

    获取所有推送规则

    GET /_matrix/client/v3/pushrules

    返回全局规则,包含动态注入的默认规则:

    {
      "global": {
        "override": [...],
        "room": [...],
        "sender": [...],
        "content": [...],
        "underride": [...]
      }
    }

    默认规则(m.push_rulesm.ignored_user_list)在每次 /sync 响应的账户数据中动态注入。

    获取推送规则

    GET /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}

    创建推送规则

    PUT /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}
    {
      "actions": [
        "notify",
        { "set_tweak": "sound", "value": "default" },
        { "set_tweak": "highlight", "value": true }
      ],
      "conditions": [
        { "kind": "event_match", "key": "type", "pattern": "m.room.message" }
      ],
      "enabled": true
    }

    更新推送规则操作

    PUT /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}/actions

    删除推送规则

    DELETE /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}

    推送器

    推送器定义通知发送到哪里。

    获取推送器

    GET /_matrix/client/v3/pushers

    添加推送器

    POST /_matrix/client/v3/pushers
    {
      "pushkey": "device_push_key",
      "kind": "http",
      "app_id": "com.example.app",
      "app_display_name": "Example App",
      "device_display_name": "My Phone",
      "profile_tag": "tag1",
      "url": "https://example.com/push",
      "lang": "en"
    }

    删除推送器

    DELETE /_matrix/client/v3/pushers/{pushkey}

    推送规则操作

    推送规则定义决定通知行为的操作:

    操作说明
    notify生成通知
    dont_notify抑制通知
    coalesce与其他通知合并
    set_tweak: sound播放通知声音
    set_tweak: highlight高亮通知

    推送规则类型

    类型作用域说明
    overrideglobal基于条件的规则
    roomglobal按房间的规则
    senderglobal按发送者的规则
    contentglobal内容模式匹配
    underrideglobal默认回退规则

    推送器投递

    PusherDeliveryWorker 处理出站推送投递,支持:

    • 指数退避重试(最多 2 次,5 分钟间隔)
    • HTTP POST 到配置的推送网关 URL
    • event_push_summary 表中的事件推送摘要跟踪