今天个人几篇文章介绍了改文档通知的文章. 关联文章的地址
搞了一个下昼,发送通知于终功成了,分享一下
首先放一个百度PHP SDK的文档:http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/sdk/phpserver#pushMessage
比客户端好多了,客户端都没有文档的。
将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!!!!<br />' ); echo ( 'ERROR NUMBER: ' . $channel->errno ( ) . '<br />' ); echo ( 'ERROR MESSAGE: ' . $channel->errmsg ( ) . '<br />' ); echo ( 'REQUEST ID: ' . $channel->getRequestId ( ) . '<br />' ); }else{ echo ( 'result: ' . print_r ( $return, true ) ); }
这里的字符串接拼必须是单引号,否则也会报错
user_id和channel_id都是客户端生成的
还可以自定义一些在百度云推送操纵中央支撑的操纵,比如开打url等,细详文档地址:
http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/faq
文章结束给大家分享下程序员的一些笑话语录: 某程序员对书法十分感兴趣,退休后决定在这方面有所建树。花重金购买了上等的文房四宝。一日突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风 范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字:hello world.