近期花了差不多3天的时间去调用百度推送,总算搞明白个大概,测试后总结。
总结 需要的参数有
提交url是 http://api.tuisong.baidu.com/rest/3.0/push/all/1,bd_class 这个是我定义的名称,在3.0会使用到,值是push/all push/single_device 放在url的后面,为restapi待访问资源的类别
1,api_key
2,push_type 1~3,单推,全推,好像和bd_class=push/all重复,其实两个都要
3,channel_id 单推时需要,全推,组推不用
4,tag 组推使用,其它推不用
5,device_type 设备类型,android为3 ios 为4
6,msg_type 消息0,通知1,消息在百度是透传,没有声音提示的
7,msg 内容 本身是一个json组合,见下文,传的时候是传json格式的的字符串{\"title\":\"到货通知:\",\"description\":\"你的货物到XX自取点\"} 还有其它参数
8,msg_expires=18000 信息过期时间 默认为5小时(18000秒)
9,sign 签名,要utf8化,要md5加密,为所有参数的组合,sign本身除外,要另外处理,不能直接传送
10,timestamp 签名的过期时间,一般为7天不过期604800
11,deploy_status 部署状态 可取值:1:开发状态 2:生产状态
12,type //number 是 目前固定值为 1 推送的标签类型,用于组播,单推,全推没有
13,send_time { get; set; }//number 否 指定的实际发送时间,必须在当前时间60s以外,1年以内 定时推送,用于指定的实际发送时间,参数不用指定
14,secretkey 用在生成sign签名的字符串上,放在尾端,在拼接好的字符串末尾追加上应用的secret_key,并进行urlencode,形成base_string;
15,httpmethod "POST" 用在生成签名sign,放在sign字符串的首位置 sign=UrlEncode(this.httpmethod.ToUpper() + this.url + preData.ToString() + this.sec_apikey, System.Text.Encoding.UTF8);
===================msg
title 要
description 要
notification_builder_id 不用指定,用默认,默认为0
notification_basic_style =7 指定为7,
open_type=3 要 点后进入app的消息页面 点击通知后的行为(1:打开Url; 2:自定义行为;3:应用);具体到哪个界面,应该没办法了,找不到答案
url 不用指定,
pkg_content open_type为2时才有效,
custom_content:不用指定,更不能为"",自定义内容,键值对,Json对象形式(可选);在android客户端,这些键值对将以Intent中的extra进行传递