文档通知百度云推送通知埋的大大的坑,成功测试REST API for PHP服务端

今天个人几篇文章介绍了改文档通知的文章. 关联文章的地址

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

       首先放一个百度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.

你可能感兴趣的:(REST)