首先要明白php对接极光推送要做些什么,极光推送的大致流程是:你的服务器----->极光服务器------>app端。而php要做的就只有我们的服务器到极光服务器这个过程。极光服务器到app端需要app的开发人员去配置就行了。
操作步骤:
1.注册极光推送的账号,然后创建你要推送的应用。
2.app端集成极光推送,在极光后台完成推送设置。
3.下载极光推送PHP SDK: http://docs.jiguang.cn/jpush/guideline/intro/
4.将下载好的包解压放在项目的扩展类库目录中(如tp的extend)
5.将推送方法写入公共函数中,方便调用,如下所示:
/*
* 向所有用户设备推送消息
* $message 需要推送的消息
*/
function SendAll($message){
require_once(BASE_RESOURCE_PATH.DS.'JPush1'.DS.'JPush.php');
$client->appKey='你的appkey';
$client->masterSecret='你的masterSecret';
$result = $client->push()
->setPlatform('all')
->addAllAudience()
->setNotificationAlert($message) //你要推送的信息
->send();
echo json_encode($result); //返回发送结果
}
/**
* 向指定设备推送消息
*/
function sendSpecial($regid,$message){
require_once(BASE_RESOURCE_PATH.DS.'JPush1'.DS.'JPush.php');//引入框架加载包,有的版
//本是autoload.php
$client->appKey='你的APPKey';
$client->masterSecret='你的masterSecret';
$client = new JPush($app_key,$master_secret);
$result = $client->push()->setPlatform('all') //设备:all表示所有,可以是
// ios/android
->addRegistrationId($regid) //你要推送的设备号/用户(registrationID)
->setNotificationAlert($message)
->send();
echo json_encode($result);
}
以上就是简单的推送消息的方法,适用于我目前的框架,因为目前做的项目框架不支持命名空间的写法,所以用的极光 推送是之前的老版本,新版本的写法也是差不多的。
6. 写好推送方法之后需要和app端配合,app端会在用户登录之后将设备id也就是registrationID传给你,所以你可能需要写一个接口来接收这个registrationID,同时还可以将当前用户的登录id一起传回来,可以当做alias(别名)使用,你还可以给每个用户设定一个标签(tag),标签的作用是用来群发消息的,比如用户性别是“男”’的,你可以给每个性别为“男”的用户打上相同的标签,下次推送的时候只要设置推送标签就可以只推送给性别为“男”’的设备(用户)。
7.app传回来的registrationID和用户id(也可以是其他表示用户唯一表示的字段),再给每个用户设置一个alias(传回来的用户ID)和tag(根据需求设定),一起存入数据库中,需要新建一张表和用户表关联起来。
8.到这里简单的推送基本完成了,如果要推送指定用户只需要在新建的表里面根据用户唯一表示将设备id找出来,然后放入上面第二个方法中就可以了。
有一个问题就是,如果方法写好了,然后推送给所有用户的时候,只有安卓能收到,而ios不能收到,则可能需要更改包里面的option参数:apns_production,false是ios的开发环境,true是生产环境。
---------------------
作者:月染指上
来源:CSDN
原文:https://blog.csdn.net/qq_36515500/article/details/81216364
https://blog.csdn.net/Zhihua_W/article/details/52197611
版权声明:本文为博主原创文章,转载请附上博文链接!