Device API v3

Device API 用于在服务器端查询、设置、更新、删除设备的 tag,alias 信息,使用时需要注意不要让服务端设置的标签又被客户端给覆盖了。

  • 如果不是熟悉 tag,alias 的逻辑建议只使用客户端或服务端二者中的一种。
  • 如果是两边同时使用,请确认自己应用可以处理好标签和别名的同步。


API 概述

Device API 用于在服务器端查询、设置、更新、删除设备的 tag, alias 信息。

包含了 device, tag, alias 三组 API。其中:

  • device 用于查询/设置设备的各种属性,包含 tags, alias;
  • tag 用于查询/设置/删除设备的标签;
  • alias 用于查询/设置/删除设备的别名。

需要用到的关键信息还有 registration ID:

  • 设备的 registration_id 在客户端集成后获取,详情查看 AndroidiOSWinPhone 的 API 文档;
  • 服务端未提供 API 去获取设备的 registrationID 值,需要开发者在客户端获取到 registration ID 后上传给开发者服务器保存。

调用地址

https://device.jpush.cn

如果创建的极光应用分配的北京机房,并且 API 调用方的服务器也位于北京,则比较适合调用极光北京机房的 API,可以提升一定的响应速度。

通过极光 Web 控制台 “应用设置” -> "应用信息" 中可以看到应用所在机房。如果应用所在地为北京机房,同时会给出各 API 的调用地址。

北京机房 Push API 调用地址: https://bjapi.push.jiguang.cn/v3/device

详细对应关系见 “应用信息” 中 “服务器所在地” 后的信息。

查询设备的别名与标签

GET /v3/devices/{registration_id}
获取当前设备的所有属性,包含 tags, alias,手机号码 mobile。

Example Request

Request Header

GET /v3/devices/{registration_id}
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Params

  • N/A

Example Response

Response Header

HTTP/1.1 200 OK
  Content-Type: application/json; charset=utf-8

Response Data

{
     "tags": ["tag1", "tag2"],
     "alias": "alias1",
     "mobile": "13012345678"
}
  • 找不到统计项就是 null,否则为统计项的值

设置设备的别名与标签

使用短信业务,请结合服务端 SMS_MESSAGE 字段

POST /v3/devices/{registration_id}
更新当前设备的指定属性,当前支持 tags, alias,手机号码 mobile。

Example Request

Request Header

POST /v3/devices/{registration_id}
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Body

{
        "tags":{
            "add": [
                "tag1",
                "tag2"
            ],
            "remove": [
                "tag3",
                "tag4"
            ]
        },
        "alias": "alias1",
        "mobile":"13012345678"
    }

Request Params

  • tags:支持 add, remove 或者空字符串。当 tags 参数为空字符串的时候,表示清空所有的 tags;add/remove 下是增加或删除指定的 tag;
    • 一次 add/remove tag 的上限均为 100 个,且总长度均不能超过 1000 字节。
    • 可以多次调用 API 设置,一个设备(registrationID)能设置的 tag 上限为 1000 个,应用 tag 总数没有限制 。
  • alias:更新设备的别名属性;当别名为空串时,删除指定设备的别名;
  • mobile:设备关联的手机号码

Example Response

Response Header

HTTP/1.1 200 OK
  Content-Type: application/json; charset=utf-8

Response Data

  • N/A

查询别名

获取指定 alias 下的设备,最多输出 10 个;

GET /v3/aliases/{alias_value}

Example Request

Request Header

GET /v3/aliases/{alias_value}?platform=android,ios
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Params

  • platform 可选参数,不填则默认为所有平台。

Example Response

Response Header

HTTP/1.1 200 OK
  Content-Type: application/json; charset=utf-8

Response Data

{
     "registration_ids": ["registration_id1", "registration_id2"]
}
  • 找不到统计项就是 null,否则为统计项的值。

删除别名

删除一个别名,以及该别名与设备的绑定关系。

DELETE /v3/aliases/{alias_value}

Example Request

Request Header

DELETE /v3/aliases/{alias_value}?platform=android,ios
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Params

  • platform 可选参数,不填则默认为所有平台。

Example Response

Response

  • N/A

查询标签列表

GET /v3/tags/

获取当前应用的所有标签列表,每个平台最多返回 100 个。

Example Request

Request Header

GET /v3/tags/
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Params

  • None

Example Response

Response Header

HTTP/1.1 200 OK
  Content-Type: application/json; charset=utf-8

Response Data

{
     "tags": ["tag1", "tag2"]
}
  • 找不到统计项就是 null,否则为统计项的值。

判断设备与标签绑定关系

GET /v3/tags/{tag_value}/registration_ids/{registration_id}
查询某个设备是否在 tag 下。

Example Request

Request Header

GET /v3/tags/{tag_value}/registration_ids/090c1f59f89
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Params

  • registration_id 必须,设备的 registration_id

Example Response

Response Header

HTTP/1.1 200 OK
  Content-Type: application/json; charset=utf-8

Response Data

{
     "result": true/false
}

更新标签

为一个标签添加或者删除设备。

POST /v3/tags/{tag_value}

Example Request

Request Header

POST /v3/tags/{tag_value}
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Body

{
        "registration_ids":{
            "add": [
                "registration_id1",
                "registration_id2"
            ],
            "remove": [
                "registration_id3",
                "registration_id4"
            ]
        }
}

Request Params

  • action 操作类型,有两个可选:"add","remove",标识本次请求是"添加"还是"删除"。
  • registration_ids 需要添加/删除的设备 registration_id。
  • add/remove 最多各支持 1000 个;

Example Response

Response Header

HTTP/1.1 200 OK
 Content-Type: application/json; charset=utf-8

Response Data

  • N/A

删除标签

删除一个标签,以及标签与设备之间的关联关系。

DELETE /v3/tags/{tag_value}

Example Request

Request Header

DELETE /v3/tags/{tag_value}?platform=android,ios
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Params

  • platform 可选参数,不填则默认为所有平台。

Example Response

  • N/A

获取用户在线状态(VIP 专属接口)

如需要开通此接口,请联系:商务客服

Example Request

Request Header

POST /v3/devices/status/
  Authorization: Basic (base64 auth string)
  Accept: application/json

Request Data

{
  "registration_ids":["010b81b3582", "0207870f1b8", "0207870f9b8"]
}

Request Params

  • registration_ids 需要在线状态的用户 registration_id, 最多支持查询 1000 个 registration_id;
  • 需要申请开通了这个业务的 Appkey 才可以调用此 API。

Example Response

Response Header

HTTP/1.1 200 OK
  Content-Type: application/json; charset=utf-8

Response Data

{
     "010b81b3582": {
         "online": true
     },
     "0207870f1b8": {
          "online": false,
          "last_online_time": "2014-12-16 10:57:07"
     },
     "0207870f9b8": {
          "online": false
    }
}

Response Params

  • online

    • true: 10 分钟之内在线;
    • false: 10 分钟之内不在线;
  • last_online_time

    • 当 online 为 true 时,该字段不返回;
    • 当 online 为 false,且该字段不返回时,则表示最后一次在线时间是两天之前;
  • 对于无效的 regid 或者不属于该 appkey 的 regid,该 registration id 返回的结果为空;

调用返回

业务返回码

Code 描述 详细解释 HTTP Status Code
7000 内部错误 系统内部错误 500
7001 校验信息为空 调用验证中的 Appkey 与 MasterSecret 为空 401
7002 请求参数非法 需严格遵守文档参数类型与值说明 400
7004 校验失败 检查调用验证中的 Appkey 与 MasterSecret 是否正确 401
7008 appkey 不存在 检查工程填写的 Appkey 是否与官网应用一致 400
7030 系统繁忙,稍后重试 系统繁忙,稍后重试 503

参考

参考文档:Http-Status-Code


Copyright 2011-2017, jiguang.cn, All Rights Reserved.
粤ICP备12056275号-13 深圳市和讯华谷信息技术有限公司

Documentation built with MkDocs.