• IM REST Report V2
    • 消息历史
      • HTTP 验证
    • 获取消息
      • Example Request
        • Request Header
        • Request Body
        • Request Params
      • Example Response
        • Response Header
        • Response Data
    • 获取用户消息
      • Example Request
        • Request Header
        • Request Body
        • Request Params
      • Example Response
        • Response Header
        • Response Data
    • 获取群组消息
      • Example Request
        • Request Header
        • Request Body
        • Request Params
      • Example Response
        • Response Header
        • Response Data
    • 获取聊天室消息
      • Example Request
        • Request Header
        • Request Body
        • Request Params
      • Example Response
        • Response Header
        • Response Data
  • 统计接口 (vip专属接口)
    • 用户统计
      • Example Request
        • Request Header
        • Request Body
        • Request Params
      • Example Response
        • Response Header
        • Response Data
    • 消息统计
      • Example Request
        • Request Header
        • Request Body
        • Request Params
      • Example Response
        • Response Header
        • Response Data
    • 群组统计
      • Example Request
        • Request Header
        • Request Body
        • Request Params
      • Example Response
        • Response Header
        • Response Data

    IM REST Report V2

    消息历史

    目前只保存最近60天消息,这类 API 地址统一为(注意与 Push API 不同):https://report.im.jpush.cn/v2相比于V1 V2改进了整体查询的稳定性以及速度,提高查询一页的数量上限

    HTTP 验证

    验证采用 HTTP Basic 机制,即 HTTP Header(头)里加一个字段(Key/Value对):Authorization: Basic base64_auth_string其中 base64_auth_string 的生成算法为:base64(appKey:masterSecret)即,对 appKey 加上冒号,加上 masterSecret 拼装起来的字符串,再做 base64 转换。

    温馨提示:

    使用此接口,传递给JMessage的URL需要经过URL Encode处理,例如时间格式中的空格需要被转义为 %20

    获取消息

    1. GET /messages?count=1000&begin_time={begin_time}&end_time={end_time}

    Example Request

    Request Header

    1. GET /messages?count=500&begin_time=2015-11-02 10:10:10&end_time=2015-11-02 10:10:12 (第一次请求)
    1. GET /messages?cursor=KSDKF34UISOCGAASD (第n次获取 n>1

    Request Body

    N/A

    Request Params

    • count (必填)每次查询的总条数 一次最多1000
    • begin_time (必填) 记录开始时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件大于等于begin time
    • end_time (必填) 记录结束时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件小于等于end time
    • begin_time end_time 之间最大范围不得超过7天
    • cursor 当第一次请求后如果后面有数据,会返回一个cursor回来用这个获取接下来的消息 (cursor 有效时间是120s,过期后需要重新通过第一个请求获得cursor,重新遍历)
    • 查询的消息按发送时间升序排序

    Example Response

    Response Header

    1. HTTP/1.1 200
    2. Content-Type: application/json; charset=utf-8

    Response Data

    1. {
    2. "total": 3000, "cursor":"APSK234ASDKQWE", "count": 1,
    3. "messages": [
    4. { "target_type": "single",
    5. "msg_type": "text",
    6. "target_name": "",
    7. "target_id": "10010648",
    8. "from_id": "868802000386631",
    9. "from_name": "868802000386631",
    10. "from_type": "user",
    11. "from_platform": "a",
    12. "msg_body": {
    13. "text": "text",
    14. "extras": { }
    15. },
    16. "create_time": 1446016259,
    17. "version": 1,
    18. "msgid": 13242735,
    19. "msg_level" : 0, // 0代表应用内消息 1代表跨应用消息
    20. "msg_ctime" : 1466866468352 // 服务器接收到消息的时间,单位毫秒
    21. }
    22. ]
    23. }

    获取用户消息

    1. GET /users/{username}/messages?count=1000&begin_time={begin_time}&end_time={end_time}

    Example Request

    Request Header

    1. GET /users/caiyh/messages?count=500&begin_time=2015-11-02 10:10:10&end_time=2015-11-02 10:10:12 第一次请求)
    1. GET /users/{username}/messages?cursor=KSDKF34UISOCGAASD (第n次获取 n>1

    Request Body

    N/A

    Request Params

    • count (必填)查询的总条数 一次最多1000
    • begin_time (必填) 记录开始时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件大于begin time
    • end_time (必填) 记录结束时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件小于end time
    • begin_time end_time 之间最大范围不得超过7天
    • cursor 当第一次请求后如果后面有数据,会返回一个cursor回来用这个获取接下来的消息 (cursor 有效时间是120s,过期后需要重新通过第一个请求获得cursor,重新遍历)
    • 查询的消息按发送时间升序排序

    Example Response

    Response Header

    1. HTTP/1.1 200
    2. Content-Type: application/json; charset=utf-8

    Response Data

    1. {
    2. "total": 3000, "cursor":"APSK234ASDKQWE", "count": 1,
    3. "messages": [
    4. { "target_type": "single",
    5. "msg_type": "text",
    6. "target_name": "",
    7. "target_id": "10010648",
    8. "from_id": "868802000386631",
    9. "from_name": "868802000386631",
    10. "from_type": "user",
    11. "from_platform": "a",
    12. "from_appkey": "4f7aef34fb361292c566a1cd",
    13. "target_appkey": "4f7aef34fb361292c566a1cd",
    14. "msg_body": {
    15. "text": "text",
    16. "extras": { }
    17. },
    18. "create_time": 1446016259,
    19. "version": 1 ,
    20. "msgid": 13242735,
    21. "msg_level" : 0 // 0代表应用内消息 1代表跨应用消息
    22. "msg_ctime" : 1466866468352 // 服务器接收到消息的时间,单位毫秒
    23. }
    24. ]
    25. }

    获取群组消息

    1. GET /groups/{gid}/messages?count=1000&begin_time={begin_time}&end_time={end_time}

    Example Request

    Request Header

    1. GET /groups/10055201/messages?count=500&begin_time=2015-11-02 10:10:10&end_time=2015-11-02 10:10:12 第一次请求)
    1. GET /groups/10055201/messages?cursor=KSDKF34UISOCGAASD (第n次获取 n>1

    Request Body

    N/A

    Request Params

    • count (必填)查询的总条数 一次最多1000
    • begin_time (必填) 记录开始时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件大于begin time
    • end_time (必填) 记录结束时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件小于end time
    • begin_time end_time 之间最大范围不得超过7天
    • cursor 当第一次请求后如果后面有数据,会返回一个cursor回来用这个获取接下来的消息 (cursor 有效时间是120s,过期后需要重新通过第一个请求获得cursor,重新遍历)
    • 查询的消息按发送时间升序排序

    Example Response

    Response Header

    1. HTTP/1.1 200
    2. Content-Type: application/json; charset=utf-8

    Response Data

    1. {
    2. "total": 1,
    3. "cursor": "02838264C47BA022DE545AF2D013B59A",
    4. "count": 1,
    5. "messages": [
    6. {
    7. "set_from_name": 1,
    8. "from_platform": "a",
    9. "target_name": "",
    10. "msg_type": "text",
    11. "version": 1,
    12. "target_id": "10055201",
    13. "from_appkey": "4f7aef34fb361292c566a1cd",
    14. "from_name": "custom name nnn",
    15. "from_id": "ppppp",
    16. "msg_body": {
    17. "text": "hehe",
    18. "extras": {}
    19. },
    20. "create_time": 1490930940,
    21. "from_type": "user",
    22. "target_appkey": "",
    23. "target_type": "group",
    24. "msgid": 287090485,
    25. "msg_ctime": 1490930941708,
    26. "msg_level": 0
    27. }
    28. ]
    29. }

    获取聊天室消息

    1. GET /chatrooms/{chatroomid}/messages?count=100&begin_time={begin_time}&end_time={end_time}

    Example Request

    Request Header

    1. GET /chatrooms/{chatroomid}/messages?count=100&begin_time=2017-11-02 10:10:10&end_time=2017-11-02 10:10:12 第一次请求)
    1. GET /chatrooms/{chatroomid}/messages?cursor=KSDKF34UISOCGAASD (第n次获取 n>1

    Request Body

    N/A

    Request Params

    • count (必填)查询的总条数 一次最多1000
    • begin_time (必填) 记录开始时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件大于begin time
    • end_time (必填) 记录结束时间 格式 yyyy-MM-dd HH:mm:ss 设置筛选条件小于end time
    • begin_time end_time 之间最大范围不得超过7天
    • cursor 当第一次请求后如果后面有数据,会返回一个cursor回来用这个获取接下来的消息 (cursor 有效时间是120s,过期后需要重新通过第一个请求获得cursor,重新遍历)
    • 查询的消息按发送时间升序排序

    Example Response

    Response Header

    1. HTTP/1.1 200
    2. Content-Type: application/json; charset=utf-8

    Response Data

    1. {
    2. "total": 1,
    3. "cursor": "02838264C47BA022DE545AF2D013B59A",
    4. "count": 1,
    5. "messages": [
    6. {
    7. "set_from_name": 1,
    8. "from_platform": "a",
    9. "target_name": "",
    10. "msg_type": "text",
    11. "version": 1,
    12. "target_id": "10055201",
    13. "from_appkey": "4f7aef34fb361292c566a1cd",
    14. "from_name": "custom name nnn",
    15. "from_id": "ppppp",
    16. "msg_body": {
    17. "text": "hehe",
    18. "extras": {}
    19. },
    20. "create_time": 1490930940,
    21. "from_type": "user",
    22. "target_appkey": "",
    23. "target_type": "chatroom",
    24. "msgid": 287090485,
    25. "msg_ctime": 1490930941708,
    26. "msg_level": 0
    27. }
    28. ]
    29. }

    统计接口 (vip专属接口)

    用户统计

    1. GET /statistic/users?time_unit={time_unit}&start={start}&duration={duration}

    Example Request

    Request Header

    1. GET /statistic/users?time_unit=DAY&start=2017-03-01&duration=3

    Request Body

    N/A

    Request Params

    • time_unit (必填)查询维度 目前只有 DAY
    • start (必填) 开始时间 time_unit 为DAY的时候格式为yyyy-MM-dd
    • duration (必填) 请求时的持续时长,DAY 最大为60天
    • 统计只保存最近60天的记录

    Example Response

    Response Header

    1. HTTP/1.1 200
    2. Content-Type: application/json; charset=utf-8

    Response Data

    1. [
    2. {
    3. "active_users": 29,
    4. "total_users": 66938,
    5. "send_msg_users": 7,
    6. "new_users": 2,
    7. "date": "2017-03-01"
    8. },
    9. {
    10. "active_users": 29,
    11. "total_users": 66941,
    12. "send_msg_users": 10,
    13. "new_users": 3,
    14. "date": "2017-03-02"
    15. },
    16. {
    17. "active_users": 22,
    18. "total_users": 66943,
    19. "send_msg_users": 3,
    20. "new_users": 2,
    21. "date": "2017-03-03"
    22. }
    23. ]
    • active_user :活跃用户数
    • total_users :总用户数
    • send_msg_users :发送了消息的用户数
    • new_user :新增用户数

    消息统计

    1. GET /statistic/messages?time_unit={time_unit}&start={start}&duration={duration}

    Example Request

    Request Header

    1. GET /statistic/messages?time_unit=DAY&start=2017-03-01&duration=2

    Request Body

    N/A

    Request Params

    • time_unit (必填)查询维度 目前有 HOUR DAY MONTH 三个维度可以选
    • start (必填) 开始时间 time_unit 为 HOUR时 格式为yyyy-MM-dd HH ,DAY的时候格式为yyyy-MM-dd , MONTH的时候格式为 yyyy-MM
    • duration (必填) 请求时的持续时长 HOUR 只支持查询当天的统计, DAY 最大为60天 ,MOTH为两个月
    • 统计只保存最近60天的记录

    Example Response

    Response Header

    1. HTTP/1.1 200
    2. Content-Type: application/json; charset=utf-8

    Response Data

    1. {
    2. "send_msg_stat": [
    3. {
    4. "time": "2017-03-01",
    5. "group_send_msg": 89,
    6. "single_send_msg": 170916
    7. },
    8. {
    9. "time": "2017-03-02",
    10. "group_send_msg": 306,
    11. "single_send_msg": 170944
    12. },
    13. {
    14. "time": "2017-03-03",
    15. "group_send_msg": 71,
    16. "single_send_msg": 170782
    17. }
    18. ],
    19. "group_msg_stat": {
    20. "txt_msg": 425,
    21. "image_msg": 39,
    22. "voice_msg": 1,
    23. "other_msg": 1
    24. },
    25. "single_msg_stat": {
    26. "txt_msg": 512633,
    27. "image_msg": 7,
    28. "voice_msg": 1,
    29. "other_msg": 1
    30. }
    31. }
    • send_msg_stat : 发送消息统计
    • send_msg_stat->group_send_msg : 群组发送消息数
    • send_msg_stat->single_send_msg : 单聊发送消息数
    • group_msg_stat :群组消息类型统计
    • group_msg_stat->txt_msg : 群组文本消息条数
    • group_msg_stat->image_msg : 群组图片消息条数
    • group_msg_stat->voice_msg : 群组语音消息条数
    • group_msg_stat->other_msg : 群组其他类型消息条数
    • single_msg_stat :单聊消息类型统计
    • single_msg_stat->txt_msg : 单聊文本消息条数
    • single_msg_stat->image_msg : 单聊图片消息条数
    • single_msg_stat->voice_msg : 单聊语音消息条数
    • single_msg_stat->other_msg : 单聊其他类型消息条数

    群组统计

    1. GET /statistic/groups?time_unit={time_unit}&start={start}&duration={duration}

    Example Request

    Request Header

    1. GET /statistic/groups?time_unit=DAY&start=2017-03-01&duration=3

    Request Body

    N/A

    Request Params

    • time_unit (必填)查询维度 目前只有 DAY
    • start (必填) 开始时间 time_unit 为DAY的时候格式为yyyy-MM-dd
    • duration (必填) 请求时的持续时长,DAY 最大为60天
    • 统计只保存最近60天的记录

    Example Response

    Response Header

    1. HTTP/1.1 200
    2. Content-Type: application/json; charset=utf-8

    Response Data

    1. [
    2. {
    3. "date": "2017-03-01",
    4. "active_group": 5,
    5. "total_group": 5,
    6. "new_group": 3
    7. },
    8. {
    9. "date": "2017-03-02",
    10. "active_group": 9,
    11. "total_group": 9,
    12. "new_group": 2
    13. },
    14. {
    15. "date": "2017-03-03",
    16. "active_group": 3,
    17. "total_group": 3,
    18. "new_group": 0
    19. }
    20. ]
    • active_group :活跃群组数
    • total_groups :总群组数
    • send_msg_users :发送了消息的用户数
    • new_groups :新增群组数