移动APP推送服务

    API调用方式

    请求

    百度慧推请求URL结构

    [GET|POST]  
    https://push.safe.baidu.com/push/api/open/v1/{method}?{common_query_string}

    其中method为请求的方法,根据不同接口而异。

    所有请求都包含common_query_string,字段包含:

    • appkey:在后台为应用分配的appkey;
    • timestamp:请求的时间戳,若与服务器差别很大,请求可能被拒绝;
    • sign:请求的签名,生成方式请参考鉴权方式;

    请求示例

    POST  
    https://push.safe.baidu.com/push/api/open/v1/message/broadcast?appkey=10001&sign=354e0bbf6a80b07b61bd9637e45b3a32&timestamp=1543310683

    鉴权方式

    百度慧推会对所有的请求进行权限校验,服务端会根据请求的渠道和数据计算本次请求的签名,并与请求的sign参数进行比对,签名生成流程:

    1. 将请求方法、请求URL(不包含common_query_string部分)、Post Body、appkey、timestamp、masterkey(后台生成)按照上述顺序进行字符串拼接;
    2. 将拼接的字符串进行url_encode;
    3. 再进行md5得到sign值。

      sign =  
      MD5(url_encode($http_method$url$post_body$appkey$timestamp$masterkey))

    示例

    描述 说明
    appkey 10001
    masterkey 79b7cdcd14db14e9cb498f1793817d69
    请求方法 POST
    请求URL https://push.safe.baidu.com/push/api/open/v1/message/broadcast
    Post Body {"message_type":2,"transmission":{"title":"hello","content":"hello world"}}
    timestamp 1543310683
    1. 将参数排列得到:

      POST  
      https://push.safe.baidu.com/push/api/open/v1/message/broadcast{"message_type":2,"transmission":{"title":"hello","content":"hello world"}}10001154331068379b7cdcd14db14e9cb498f1793817d69
    2. 进行url_encode得到:

      POST  
      https%3A%2F%2Fpush.safe.baidu.com%2Fpush%2Fapi%2Fopen%2Fv1%2Fmessage%2Fbroadcast%7B%22message_type%22%3A2%2C%22transmission%22%3A%7B%22title%22%3A%22hello%22%2C%22content%22%3A%22hello+world%22%7D%7D10001154331068379b7cdcd14db14e9cb498f1793817d69
    3. 计算md5

      MD5  
      (POSThttps%3A%2F%2Fpush.safe.baidu.com%2Fpush%2Fapi%2Fopen%2Fv1%2Fmessage%2Fbroadcast%7B%22message_type%22%3A2%2C%22transmission%22%3A%7B%22title%22%3A%22hello%22%2C%22content%22%3A%22hello+world%22%7D%7D10001154331068379b7cdcd14db14e9cb498f1793817d69)  
      sign = 354e0bbf6a80b07b61bd9637e45b3a32
    4. 发起请求

      curl -H "Content-Type: application/json" -XPOST "https://push.safe.baidu.com/push/api/open/v1/message/broadcast?appkey=10001&sign=354e0bbf6a80b07b61bd9637e45b3a32&timestamp=1543310683" -d '{"message_type":2,"transmission":{"title":"hello","content":"hello world"}}'

    返回参数

    每次请求都会返回以下公共参数

    参数 类型 说明
    request_id int64 用于异常排查
    code int 错误码
    message string 错误说明

    此外,如果接口需要返回数据,会包含在result字段中

    参数 类型 说明
    result json object 返回的数据,格式因接口而异

    全局错误码

    HTTP Status Code Code 说明
    200 0 成功
    400 400 参数错误 错误说明见返回的message字段
    401 401 签名校验失败 请检查appkey、masterkey、签名算法等是否正确
    404 - 路由错误 请检查请求URL、HTTP Method等是否正确
    500 - 服务器内部错误,请稍候重试
    200 10000 push_id不存在
    上一篇
    集成文档
    下一篇
    消息推送