概述
开发APP的时候,需要将特定的消息使用JPush极光推送到ios和android不同版本的平台用户。作为接口的开发人员,php端的代码肯定是需要我来去编写。
首先第一件事,就是去JPush极光推送的官网去看看他们的手册。看看是怎么使用的。下面是,我整理的开发JPush极光推送中,需要用到的资料地址链接。
在线文档地址: http://docs.jiguang.cn/server/rest_api_v3_push/
github项目地址:https://github.com/jpush/jpush-api-php-client
github项目案例:https://github.com/jpush/jpush-api-php-client/blob/master/examples/push_example.php
首先我们要去JPush极光推送官网注册一个帐号。接着我们就要来实际动手来开发JPush极光推送在php中的使用了。在开发的过程中,一定要和ios android开发人员沟通好。
第一步:下载php服务器端的代码。
解压之后文件夹为jpush-api-php-client-master
。打开之后,会有以下几个文件夹。
主要的库文件都在src
里面。
第二步:将src里面的文件全部的移动到网站的根目录。
接着打开examplespush_example.php
文件。这个是JPush极光推送的使用案例文件。
文档中提供了三种方法,我这里只使用了其中一种完整的推送示例,代码如下。
- // 完整的推送示例,包含指定Platform,指定Alias,Tag,指定iOS,Android notification,指定Message等
- require_once("../src/JPush/JPush.php");
- $br = '<br/>';
- $app_key = 'dd1066407b044738b6479275';
- $master_secret = 'e8cc9a76d5b7a580859bcfa7';
- // 初始化
- $client = new JPush($app_key, $master_secret);
- $result = $client->push()
- ->setPlatform(array('ios', 'android'))
- ->addAlias('alias1')
- ->addTag(array('tag1', 'tag2'))
- ->setNotificationAlert('Hi, JPush')
- ->addAndroidNotification('Hi, android notification', 'notification title', 1, array("key1"=>"value1", "key2"=>"value2"))
- ->addIosNotification("Hi, iOS notification", 'iOS sound', JPush::DISABLE_BADGE, true, 'iOS category', array("key1"=>"value1", "key2"=>"value2"))
- ->setMessage("msg content", 'msg title', 'type', array("key1"=>"value1", "key2"=>"value2"))
- ->setOptions(100000, 3600, null, false)
- ->send();
- echo 'Result=' . json_encode($result) . $br;
第三步:我们具体的来实现php使用JPush极光推送的功能。
首先新建控制器,比如 JpushController.class.php
在php文件中可以书写下面的代码:
- namespace ApiController;
- use ThinkController;
- class JpushController extends Controller{
- protected $app_key = 'dd1066407b044738b6479275';
- protected $master_secret = 'e8cc9a76d5b7a580859bcfa7';
- protected $br = '<br/>';
- protected $client;
- public function _initialize()
- {
- require_once './JPush/JPush.php';
- $this->client = new JPush($this->app_key,$this->master_secret);
- }
- public function send()
- {
- $result = $this->client->push()
- ->setPlatform(array('ios', 'android'))
- ->addTag(array('课程1','课程2'))
- ->setNotificationAlert('Hi, JPush')
- ->addAndroidNotification('您报名的课程,即将上课,请准时听课哦!', 'notification title', 1, array("key1"=>"value1", "key2"=>"value2"))
- ->addIosNotification("您报名的课程,即将上课,请准时听课哦!", 'iOS sound', JPush::DISABLE_BADGE, true, 'iOS category', array("key1"=>"value1", "key2"=>"value2"))
- ->setMessage("msg content", 'msg title', 'type', array("key1"=>"value1", "key2"=>"value2"))
- ->setOptions(100000, 3600, null, false)
- ->send();
- echo json_encode($result) . $this->br;
- }
- }
第四步:上面的代码就可以实现php使用JPush极光推送向ios android通知消息的功能了。
下面的说明和值得注意,我就在这个地方折腾了很久。特别是注意这几个参数之间的关系。是取交集还是并集一定要看清楚了。
我这里使用的是tag,你也可以使用alias,但是他们直接是取交集的,可以使用其中一个。
关键字 | 含义 | 类型 | 说明 | 备注 |
---|---|---|---|---|
tag | JSON Array | 标签 | 数组。多个标签之间是 OR 的关系,即取并集。 | 用标签来进行大规模的设备属性、用户属性分群。 一次推送最多 20 个。
|
tag_and | JSON Array | 标签AND | 数组。多个标签之间是 AND 关系,即取交集。 | 注册与 tag 区分。一次推送最多 20 个。 |
alias | JSON Array | 别名 | 数组。多个别名之间是 OR 关系,即取并集。 | 用别名来标识一个用户。一个设备只能绑定一个别名,但多个设备可以绑定同一个别名。一次推送最多 1000 个。
|
registration_id | JSON Array | 注册ID | 数组。多个注册ID之间是 OR 关系,即取并集。 | 设备标识。一次推送最多 1000 个。 |
每种类型的值都是数组(Array),数组里多个值之间隐含的关系是是 OR,即取并集。但 tag_and 不同,其数组里多个值之间是 AND 关系,即取交集。
4种类型至少需要有其一。如果值数组长度为 0,表示该类型不存在。
这几种类型可以并存。并存时多项的隐含关系是 AND,即取交集。
通过上面的几个步骤php使用JPush极光推送ios android通知消息的功能就开发完成了
最后
以上就是虚幻饼干为你收集整理的PHP使用极光推送的全部内容,希望文章能够帮你解决PHP使用极光推送所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复