**极光推送PHP服务器端推送移动设备消息(Jpush V2 api)
jpush.php 这是推送方法 用到curl发送请求
- <?php
- /**
- * 极光推送php 服务器端
- * @author yalong sun
- * @Email <syl_ad@163.com>
- */
- class jpush {
- private $_masterSecret = '';
- private $_appkeys = '';
- /**
- * 构造函数
- * @param string $username
- * @param string $password
- * @param string $appkeys
- */
- function __construct($masterSecret = '',$appkeys = '') {
- $this->_masterSecret = $masterSecret;
- $this->_appkeys = $appkeys;
- }
- /**
- * 模拟post进行url请求
- * @param string $url
- * @param string $param
- */
- function request_post($url = '', $param = '') {
- if (empty($url) || empty($param)) {
- return false;
- }
- $postUrl = $url;
- $curlPost = $param;
- $ch = curl_init();//初始化curl
- curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
- curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
- curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
- curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
- $data = curl_exec($ch);//运行curl
- curl_close($ch);
- return $data;
- }
- /**
- * 发送
- * @param int $sendno 发送编号。由开发者自己维护,标识一次发送请求
- * @param int $receiver_type 接收者类型。1、指定的 IMEI。此时必须指定 appKeys。2、指定的 tag。3、指定的 alias。4、 对指定 appkey 的所有用户推送消息。
- * @param string $receiver_value 发送范围值,与 receiver_type相对应。 1、IMEI只支持一个 2、tag 支持多个,使用 "," 间隔。 3、alias 支持多个,使用 "," 间隔。 4、不需要填
- * @param int $msg_type 发送消息的类型:1、通知 2、自定义消息
- * @param string $msg_content 发送消息的内容。 与 msg_type 相对应的值
- * @param string $platform 目标用户终端手机的平台类型,如: android, ios 多个请使用逗号分隔
- */
- function send($sendno = 0,$receiver_type = 1, $receiver_value = '', $msg_type = 1, $msg_content = '', $platform = 'android,ios') {
- $url = 'http://api.jpush.cn:8800/sendmsg/v2/sendmsg';
- $param = '';
- $param .= '&sendno='.$sendno;
- $appkeys = $this->_appkeys;
- $param .= '&app_key='.$appkeys;
- $param .= '&receiver_type='.$receiver_type;
- $param .= '&receiver_value='.$receiver_value;
- $masterSecret = $this->_masterSecret;
- $verification_code = md5($sendno.$receiver_type.$receiver_value.$masterSecret);
- $param .= '&verification_code='.$verification_code;
- $param .= '&msg_type='.$msg_type;
- $param .= '&msg_content='.$msg_content;
- $param .= '&platform='.$platform;
- $res = $this->request_post($url, $param);
- if ($res === false) {
- return false;
- }
- $res_arr = json_decode($res, true);
- return $res_arr;
- }
- }
- ?>
send.php 发送推送消息
- <?php
- include('jpush.php');
- $n_title = '驿泊';
- $n_content = '驿泊人生';
- $appkeys='先上传app应用项目,自动生成的key';
- $masterSecret='appkey下边就同样生成mastersecret的秘钥';
- $sendno = 4;
- $receiver_value = '';
- $platform = 'android,ios' ;
- $msg_content = json_encode(array('n_builder_id'=>0, 'n_title'=>$n_title, 'n_content'=>$n_content));
- $obj = new jpush($masterSecret,$appkeys);
- $res = $obj->send($sendno, 4, $receiver_value, 1, $msg_content, $platform);
- print_r($res);
- exit();
- ?>
http://blog.csdn.net/qq1355541448/article/details/41803239
**极光推送PHP服务器端推送移动设备消息(Jpush V2 api)的更多相关文章
- Phonegap 极光推送api 服务器端推送代码
.net 版本 极光推送 后台接口 HttpWebResponseUtility类 using System; using System.Collections.Generic; using Syst ...
- iOS推送生成服务器端p12文件
生成服务器端推送p12文件 所需文件:A.开发证书 aps_production.cer B.本地导出的私钥 : aps_production.p12 C.生成证书时用到的请求文件:Push.c ...
- SignalR 聊天室实例详解(服务器端推送版)
翻译自:http://www.codeproject.com/Articles/562023/Asp-Net-SignalR-Chat-Room (在这里可以下载到实例的源码) Asp.Net Si ...
- 拥抱HTTP2.0时代 - HTTP2.0实现服务器端推送Push功能
在当今的移动互联开发趋势中,nghttp2是一个很值得大家去关注的一个开源项目. 我们在nghttpx模块中实现了HTTP/2服务器推送功能,并且在我们的nghttp2.org网站中启用了该推送功能. ...
- Qt通过极光推送向app推送消息
简介 最近在做个项目,当客服端收到防盗的消息通知时向手机app推送一个消息,告知有防盗报警.这么小的功能没必要自己写个推送端,极光推送免费而且推送的成功率高,已经能满足我们的需求了. 极光推送的文档大 ...
- .net平台借助第三方推送服务在推送Android消息(极光推送)
最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS ...
- 09点睛Spring MVC4.1-异步请求处理(包含兼容浏览器的服务器端推送)
转发地址:https://www.iteye.com/blog/wiselyman-2215852 9.1 异步请求处理 Servlet 3开始支持异步请求处理 Spring MVC 3.2开始支持S ...
- SuperSocket主动从服务器端推送数据到客户端
关键字: 主动推送, 推送数据, 客户端推送, 获取Session, 发送数据, 回话快照 通过Session对象发送数据到客户端 前面已经说过,AppSession 代表了一个逻辑的 socke ...
- android推送-PHP(第三方推送:个推)
在项目初期,就安卓推送功能怎么做,曾经参考过例如XMPP之类的推送方法.但苦于那些是些英文档案,又没太多时间研究,所以打算采用第三方推送(个推,极光推送等),后来在美图技术老大推荐下用采用个推. PS ...
随机推荐
- 关于web.xml中的<welcome-file-list>中的默认首页资料
关于web.xml中的<welcome-file-list>中的默认首页文件 先看我的配置文件: <welcome-file-list> <welcome-file> ...
- mybatis分页查询需要注意的问题
一般对mybatis的分页查询的关键代码就两行: #currentPage代表当前页,pageSize代表每页的行数 PageHelper.startPage(currentPage, pageSiz ...
- HDU3265 线段树(扫描线)
Posters Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 任务调度 Quartz 学习(一) SimpleTrigger
概述: 在实际开发过程中,会遇到很多任务调度的需求. 比如说:某网站要在每周一上午9点更新网站数据,并发邮件通知用户: 再比如某论坛需求:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积 ...
- 动态规划:区间DP与环形DP
区间型动态规划的典型例题是石子归并,同时使用记忆化搜索实现区间动归是一种比较容易实现的方式,避免了循环数组实现的时候一些边界的判断 n堆石子排列成一条线,我们可以将相邻的两堆石子进行合并,合并之后需要 ...
- rabbitmq使用命令创建交换机、队列及绑定
http://www.jusene.me/2018/02/20/rabbitmq-2/
- 使用JMeter录制脚本并调试
仍然以禅道中添加bug为例进行录制 第一步:在JMeter中添加线程组,命名为AddBugByJMeter 第二步:在线程组下添加HTTP请求默认值 添加->配置元件->HTTP请求默认值 ...
- NGINX: 返回大 JSON 数据不完整的问题
说明: 内容全部来自 [ CSDN 金玮良 ] nginx 返回数据不完整的问题 当nginx 遇到大数据流时,会把数据先放在自己的缓冲区,然后一并发给客户端. 那如果这个结论成立, 那一次请求的数据 ...
- 关于cocos2d-x 中 CCEditBox 的输入位置和IOS虚拟键盘位置不重合的bug
这个文章的名字起的实在是有点长,主要是怕说不清楚. 在IOS上,输入时,我看到过的比较少,就两种,如附件两张图.一个是虚拟键盘的输入框完全是在CCEditBox上,另一张虚拟键盘的输入区域是紧挨着键盘 ...
- Vue 定义组件模板的七种方式(一般用单文件组件更好)
在 Vue 中定义一个组件模板,至少有七种不同的方式(或许还有其它我不知道的方式): 字符串 模板字面量 x-template 内联模板 render 函数 JSF 单文件组件 在这篇文章中,我将通过 ...