开发者社区> 桃子红了呐> 正文

jPush 极光推送的理解

简介:
+关注继续查看

极光推送是给客户端ios或者android推送消息的工具。

只要在客户端嵌入sdk,同时配合服务器端来使用就可以了。

客户端可以给每个用户注册一个别名alias,和多个标签tag。

到时候,就可以给这些别名和标签发送推送了。

也可以给所有跟这个客户端有关联的用户发送消息。

 

客户端可以调用相应的接口来设置信息。

服务器端可以调用相应的接口来发送推送。

 

应用需要去极光上注册一个

$master_secret = 'a36fef7cbd5b47b74c20278c';
$app_key='1d2bd69d09c3756fa20f9c96';

 

这个值是确定这个应用的账号。

类似于用户名和密码。

 

它关联这个应用。

复制代码
require_once 'vendor/autoload.php';

use JPush\Model as M;
use JPush\JPushClient;
use JPush\JPushLog;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

use JPush\Exception\APIConnectionException;
use JPush\Exception\APIRequestException;

$br = '<br/>';
$spilt = ' - ';




$master_secret = 'a36fef7cbd5b47b74c20278c';
$app_key='1d2bd69d09c3756fa20f9c96';
JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG)));
$client = new JPushClient($app_key, $master_secret);

//easy push

try {
    $result = $client->push()
        ->setPlatform(M\all)
        //->setAudience(M\all)
        //->setAudience(M\audience(M\tag(array('tag1','tag2'))))
        //->setAudience(M\audience(M\alias(array('123'))))
        ->setAudience(M\audience(M\alias(array('1','123')),M\tag(array('tag1','tag2'))))//取交集,也就是别名为1,且其tag值为tag1或tag2的用户才能收到推送
        ->setNotification(M\notification('Hi, JPush', M\android('Hi, android'), M\ios('你好,我是别名!', 'happy', 1, true)))
        ->printJSON()
        ->send();
    echo 'Push Success.' . $br;
    echo 'sendno : ' . $result->sendno . $br;
    echo 'msg_id : ' .$result->msg_id . $br;
    echo 'Response JSON : ' . $result->json . $br;
} catch (APIRequestException $e) {
    echo 'Push Fail.' . $br;
    echo 'Http Code : ' . $e->httpCode . $br;
    echo 'code : ' . $e->code . $br;
    echo 'Error Message : ' . $e->message . $br;
    echo 'Response JSON : ' . $e->json . $br;
    echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br;
    echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br;
    echo 'rateLimitReset : ' . $e->rateLimitReset . $br;
} catch (APIConnectionException $e) {
    echo 'Push Fail: ' . $br;
    echo 'Error Message: ' . $e->getMessage() . $br;
    //response timeout means your request has probably be received by JPUsh Server,please check that whether need to be pushed again.
    echo 'IsResponseTimeout: ' . $e->isResponseTimeout . $br;
}
复制代码

这是调用接口。

setPlatform设置平台

setPlatform(M\all) //设置所有平台

setPlatform(M\platform('ios', 'android'))//设置android和ios

 

setAudience设置受众

setAudience(M\all)设置所有受众

setAudience(M\audience(M\tag(array('tag1','tag2'))))//设置tag为tag1或tag2的受众,群发

setAudience(M\audience(M\alias(array('123')))) //设置别名alias为123的受众,单发

setAudience(M\audience(M\alias(array('1','123')),M\tag(array('tag1','tag2'))))//取交集,也就是别名为1,且其tag值为tag1或tag2的用户才能收到推送

 

setNotification设置通知

setNotification(M\notification('Hi, JPush')) //设置通用通知

setNotification(M\notification('Hi, JPush', M\android('Hi, android'))) //为安卓单独设置信息,ios则是显示第一个内容,也就是除了android之外的都是Hi,JPush

setNotification(M\notification('Hi, JPush', M\ios('Hi, ios','happy',1,true)))//为ios单独设置信息

setNotification(M\notification('Hi, JPush', M\android('Hi, android'), M\ios('Hi, ios', 'happy', 1, true))) //两个都设置

 

printJSON打印json值

 

send发送

 

$sendno 开发者指定的 API 调用标识

$msg_id 推送信息的唯一标示

 

如果想把一个推送关联一个新闻,可以通过参数extras

setNotification(M\notification('Hi, JPush', M\android('Hi, android'), M\ios('快下班了', 'happy', 1, true,array('url'=>'www.123.com'))))

 

function: JPush/Model/notification($alert /* args */)

构建notification对象

参数:$alert, ios(),android(),winphone()构建的对象

function: JPush/Model/ios($alert, $sound=null, $badge=null, $contentAvailable=null, $extras=null)

构建ios对象

setNotification(M\notification('Hi, JPush', M\android('Hi, android'), M\ios('快下班了', 'happy', 1, true,array('url'=>'www.123.com'))))

参数就是url,到时候就会通过url来进入新闻中去。

 

function: JPush/Model/android($alert, $title=null, $builder_id=null, $extras=null)

构建android对象

function: JPush/Model/winphone($alert, $title=null, $_open_page=null, $extras=null)

构建winphone对象

 

 setMessage设置消息

设置message,本方法接受4个参数msg_content(string,必填), title(string),content_type(string), extras(Array)

setMessage(M\message('这个是推送消息', '这是标题', '', array('url'=>'www.msg.com'))) //设置内容,标题,以及附加值

 

 这里的数据,不是客户端来调用的,是系统调用的。可以不用设置。

 

 tag,tag_and的区别,是前者是并集,后者是交集。

setAudience(M\audience(M\tag(array('tag1')),M\tag_and(array('tag2','tag3')), M\alias(array('123','1'))))//用户标签为tag1的,且用户别名为123的,且标签中必须同时有tag2,tag3的。

 

 

复制代码
function sendAll($content = '', $extras = array(), $title = '壹指', $sound = 'default', $badge = '+1')
    {
        $response = $this->client->push()->setPlatform(M\all)
            ->setAudience(M\all)
            //->setNotification(M\notification($content))
            ->setNotification(M\notification($content, M\android($content,$title,null,$extras), M\ios($content, $sound, $badge, true,$extras)))
            //->printJSON()
            ->setOptions(M\options(null, 86400, null, true))//第二个参数为0,表示不接受离线数据。86400表示离线数据保留一天。
            ->send();

        return $response->isOk;
        //isOk sendno msg_id
    }
复制代码

 

options 推送可选项。

当前包含如下几个可选项:

sendno int 可选 推送序号 纯粹用来作为 API 调用标识,API 返回时被原样返回,以方便 API 调用方匹配请求与返回。

time_to_live int 可选 离线消息保留时长 推送当前用户不在线时,为该用户保留多长时间的离线消息,以便其上线时再次推送。默认 86400 (1 天),最长 10 天。设置为 0 表示不保留离线消息,只有推送当前在线的用户可以收到。

override_msg_id long 可选 要覆盖的消息ID 如果当前的推送要覆盖之前的一条推送,这里填写前一条推送的 msg_id 就会产生覆盖效果,即:1)该 msg_id 离线收到的消息是覆盖后的内容;2)即使该 msg_id Android 端用户已经收到,如果通知栏还未清除,则新的消息内容会覆盖之前这条通知;覆盖功能起作用的时限是:1 天。 如果在覆盖指定时限内该 msg_id 不存在,则返回 1003 错误,提示不是一次有效的消息覆盖操作,当前的消息不会被推送。

apns_production boolean 可选 APNs是否生产环境  True 表示推送生产环境,False 表示要推送开发环境; 如果不指定则为推送生产环境。

(消息) JPush 官方 API LIbrary (SDK) 默认设置为推送 “开发环境”。

big_push_duration int 可选 定速推送时长(分钟) 又名缓慢推送,把原本尽可能快的推送速度,降低下来,在给定的 n 分钟内,均匀地向这次推送的目标用户推送。最大值为 1440。未设置则不是定速推送。



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/3945095.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP实现极光推送jpush/jpush 手机APP消息推送
PHP实现极光推送jpush/jpush 手机APP消息推送
65 0
cordova实现消息推送(本地通知)
cordova实现消息推送(本地通知)
95 0
【极光推送】
【极光推送】
69 0
Android 推送 整合小米、个推、jpush
Android系统由google提供的推送的服务在国内并不能很好的运作,因此不能像iOS能提供统一管理的推送服务。Android端推送目前常用的都是第三方推送服务,也可以自己搭建推送服务器来实现, 为了节约开发成本,目前主流的提供第三方推送服务的有:极光推送、个推、友盟、小米推送、百度推送等。 Android端推送分为通知,透传两种,通知是有通知栏显示的,透传由用户自定义处
3796 0
极光推送
2016年10月20日 16:24:01 星期四 发给指定用户的流程: 1. 用户每次登录, 都会生成一个新的 registration ID 存入数据库, 与uid对应 2. 发送时取出该registration ID, 当作参数传递给接口发送 1 require 'path_to/JPush/autoload.
1354 0
android jpush 极光推送
    实战 QQ demo源码(本例中有该应用) 服务器端下载:http://download.csdn.net/download/knight_black_bob/9822551 android eclipse 版:http://download.
849 0
JPush(极光推送)实战总结
关于JPush 极光推送是国内的服务厂商提供的一站式push服务(同时支持iOS、android),后面也加入了即时通讯的能力供app使用。致力于打造简单、可靠、价格有竞争力的服务(简单功能全免费,高级版才收费),让应用开发商可以聚焦业务开发,push相关的技术实现全部通过极光推送来解决,仅需调用极光推送的api即可。
2426 0
JPush极光推送自己集成服务端jar包
极光推送服务端的api太多,自己把他封装了个jar包,有兴趣的可以看看,源码和jar包都有。 源码:http://download.csdn.net/detail/z745968621/8231145 jar包:http://download.
1108 0
jpush推送
1.下载这个压缩包,vendo文件夹,复制里面的vendo到该文件夹下。 解压 2.修改AppKey和MasterSecret就ok 了
603 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载