php验证百度云doc,百度云推送通知埋的大大的坑,成功测试REST API for PHP服务端...

搞了一个下午,发送通知终于成功了,分享一下

比客户端好多了,客户端都没有文档的。

将PHP  SDK下载后放到网站某目录

发送消息很简单的

$channel = new BaiduPush(self::APIKEY, self::SECRETKEY, array(

CURLOPT_TIMEOUT => 30,

CURLOPT_CONNECTTIMEOUT => 5

));

$return = $channel->pushMessage(3, '这是一条小气测试', 'msg_key', array(

'user_id'=>'xxxxx',

'channel_id'=>'xxxxx',

));

最难的是发送通知,文档中说

$messages参数可以是string,array 或 json string,实际上,你被坑了

官方文档:

//推送通知,必须指定MESSAGE_TYPE为1

$optional[Channel::MESSAGE_TYPE] = 1;

//通知必须按以下格式指定

$message = "{

'title': 'title',

'description': 'description'

}";

$message_key = "msg_key";

$ret = $channel->pushMessage ( $push_type, $message, $message_key, $optional );

上面所说的$message格式,相当于是一个字符串拼接格式,也就是伪json格式,因为json转码中,中文会进行处理,但是百度不会还原,所以程序会报错。

$channel = new BaiduPush(self::APIKEY, self::SECRETKEY, array(

CURLOPT_TIMEOUT => 30,

CURLOPT_CONNECTTIMEOUT => 5

));

$optional['user_id'] = 'xxxxxx';

$optional['channel_id'] = 'xxxxxx';

$optional['message_type'] = 1;

$message = "{'title': '测试','description': '这是一条通知测试'}";

$message_key = "msg_key";

$return = $channel->pushMessage(1, $message, $message_key, $optional);

if ( false === $return ){

echo ( 'WRONG, ' . __FUNCTION__ . ' ERROR!!!!
' );

echo ( 'ERROR NUMBER: ' . $channel->errno ( ) . '
' );

echo ( 'ERROR MESSAGE: ' . $channel->errmsg ( ) . '
' );

echo ( 'REQUEST ID: ' . $channel->getRequestId ( ) . '
' );

}else{

echo ( 'result: ' . print_r ( $return, true ) );

}

这里的字符串拼接必须是单引号,否则也会报错

user_id和channel_id都是客户端生成的

还可以自定义一些在百度云推送操作中心支持的操作,比如打开url等,详细文档地址:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值