友盟推送 php demo,友盟推送,php简单代码
/*
推送测试
*/
namespace Service\Controller;
use Think\Controller;
class PushController extends Controller {
private $_config = array();
public function __construct() {
parent::__construct();
$this->_config = $this->_makeConfig();
}
/*
安卓发送
*/
public function PtoAndroid($device_tokens,$ticker,$title,$text) {
if(count($device_tokens) > 500) {
die(‘设备超过500个‘);
}
//拼接签名
$post_data = $this->_android($device_tokens,$ticker,$title,$text);
$sign = $this->_makeSign($post_data,1);
$url = $this->_config[‘url‘] . ‘?sign=‘ . $sign;
//发送请求
$res = $this->_curl($url,$post_data);
//判断
if($res[‘ret‘] != ‘SUCCESS‘){
//发送失败,
die($res[‘data‘]->error_code);
}
}
public function testA() {
$device_tokens = array(‘AkFWCLpTmtJBeOf17rSnSAyPux4ayvzi6dru3O1avuSe‘);
$this->PtoAndroid($device_tokens,‘通知栏的文字‘,‘测试标题‘,‘测试内容‘);
}
/*
iOS发送
*/
public function PtoIos($device_tokens,$text) {
if(count($device_tokens) > 500) {
die(‘设备超过500个‘);
}
//拼接post数据
$post_data = $this->_ios($device_tokens,$text);
//拼接签名
$sign = $this->_makeSign($post_data,2);
$url = $this->_config[‘url‘] . ‘?sign=‘ . $sign;
//发送请求
$res = $this->_curl($url,$post_data);
//判断
if($res[‘ret‘] != ‘SUCCESS‘){
//发送失败,
die($res[‘data‘]->error_code);
}
}
public function testIos() {
$device_tokens = array(‘dd61807869efb4664491cd36eca8843a111a96d39e9772ea7940f0e83ce217c6‘);
$this->PtoIos($device_tokens,‘hello‘);
}
//生成配置文件
private function _makeConfig() {
return array(
‘method‘ => ‘POST‘,
‘url‘ => ‘http://msg.umeng.com/api/send‘,
‘ios_app_key‘=> ‘55541bb767e58e2094000492‘,
‘ios_app_master_secret‘ => ‘wbo2vnu5wmdvzfwzc2axdiiojj5ujkwt‘,
‘and_app_key‘ => ‘5551b48767e58ec961001d17‘,
‘and_app_master_secret‘ => ‘wjnbje5ju9rf89opo2p30phywwjqsavy‘,
);
}
/*
生成签名
@param post_body 请求体
type 1,安卓,2 ios
@return str
*/
private function _makeSign($post_body,$type) {
if($type == 1)
return strtolower(md5($this->_config[‘method‘] . $this->_config[‘url‘] . $post_body . $this->_config[‘and_app_master_secret‘]));
else
return strtolower(md5($this->_config[‘method‘] . $this->_config[‘url‘] . $post_body . $this->_config[‘ios_app_master_secret‘]));
}
/*
android post_body设置
@param ticker str 提示栏文字
title str 通知标题
text str 文字描述
device_tokens array 设备号
@return
*/
private function _android($device_tokens,$ticker,$title,$text) {
$temp_arr = array(
‘appkey‘ => $this->_config[‘and_app_key‘],
‘timestamp‘ => time(),
‘type‘ => ‘listcast‘,
‘device_tokens‘ => trim(implode(‘,‘, $device_tokens),‘,‘),
‘payload‘ => array(
‘display_type‘ => ‘notification‘,//通知,友盟接管处理
‘body‘ => array(
‘ticker‘ => $ticker,
‘title‘ => $title,
‘text‘ => $text,
‘after_open‘=> ‘go_custom‘,
‘custom‘ => ‘do things‘, //点击通知后做的事
),
),
‘description‘ => ‘‘,//描述
‘production_mode‘ => ‘false‘,//测试,上线为true
);
return json_encode($temp_arr);
}
/*
ios post_body消息体设置
@param ticker str 提示栏文字
title str 通知标题
text str 文字描述
device_tokens array 设备号
@return
*/
private function _ios($device_tokens,$text) {
$temp_arr =array(
‘appkey‘ => $this->_config[‘ios_app_key‘],
‘timestamp‘ => time(),
‘type‘ => ‘listcast‘,
‘device_tokens‘ => trim(implode(‘,‘, $device_tokens),‘,‘),
‘payload‘ => array(
‘aps‘ => array(
‘alert‘ => $text,
‘after_open‘=> ‘go_custom‘,
‘custom‘ => ‘do things‘, //点击通知后做的事
),
),
‘description‘ => ‘listcast‘,//描述
‘production_mode‘ => ‘false‘,//测试,上线为true
);
return json_encode($temp_arr);
}
/*
拼接curl请求
*/
private function _curl($url,$post) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlErrNo = curl_errno($ch);
$curlErr = curl_error($ch);
curl_close($ch);
if ($httpCode == "0")
die("Curl error number:" . $curlErrNo . " , Curl error details:" . $curlErr . "\r\n");
else if ($httpCode != "200")
die("Http code:" . $httpCode . " details:" . $result . "\r\n");
else
return (array)json_decode($result);
}
}
原文:http://www.cnblogs.com/lxdd/p/4506191.html
友盟推送 php demo,友盟推送,php简单代码相关推荐
- 友盟消息推送服务器demo,友盟消息推送总结
分享的文章连接 1 http://blog.csdn.net/shenjie12345678/article/details/41120637 2:http://dev.umeng.com/push ...
- 友盟消息推送服务器demo,umeng友盟消息推送功能集成
umeng友盟消息推送功能集成(本人使用的是eclipse开发) 1.首先请自行观看友盟消息推送集成的API文档. 观看地址如下: 2.集成步骤如下 下载sdk 注意:有两种sdk如果用户已经集成支付 ...
- 友盟推送和阿里云移动推送使用注意事项、不同点比较
友盟推送和阿里云移动推送,都属于阿里系的产品,在使用上很大一部分还是很相似的,阿里云将移动推送.移动热修复.移动测试.移动数据分析和移动用户反馈集成到了一块,所有的远程依赖也都是集成在一起了,然而友盟 ...
- android 友盟服务端推送给客户端,Android 友盟推送 厂商通道 接入Notes
image 前言 本文章也是就在接入过程中遇到的一些小问题做个记录,希望对遇到问题的开发者有些许帮助. 接入的SDK 版本为:Push SDK 6.1.0 官方文档 目前,友盟推送仅支持以下五家厂商的 ...
- 友盟小米收不到推送消息_一个轻量级、可插拔的Android消息推送框架。一键集成推送(极光推送、友盟推送、华为、小米推送等)...
XPush 一个轻量级.可插拔的Android消息推送框架.一键集成推送(极光推送.友盟推送.华为.小米推送等),提供有效的保活机制,支持推送的拓展,充分解耦推送和业务逻辑,解放你的双手! 在提iss ...
- 阿里达摩院联合友盟+ ,推出国内首个智能推送
你还记得最近因为优秀的推送文案而让你印象深刻的App是哪个么?某游戏的热血邀约?某标题党的新闻资讯?或者是某次约会提醒? 恐怕很多人的答案是否定的.因为有无数的案例证明现在主流的推送方案问题多多,已经 ...
- 门禁信息推送不了服务器,MIUI下周推送新功能, 友商不要羡慕! 小米6/MIX2等可直刷门禁!...
原标题:MIUI下周推送新功能, 友商不要羡慕! 小米6/MIX2等可直刷门禁! 你的手机支持NFC吗?作为智能手机的附属功能,NFC功能很早前就已经出现.早在2005年,诺基亚就推出了第一款支持NF ...
- android小米推送,Android手机端小米推送Demo解析和实现方法
最近这几个月都是在准备找工作和找工作中,付出了很多,总算是有点收获,所以都没有怎么整理笔记.到了最近才有空把自己的笔记整理一下发上来,分享一下我的学习经验. 推送 由于最近项目要用到Android的消 ...
- 【观察】重新定义销售 销售推的底气与微盟的梦想
申耀的科技观察 读懂科技,赢取未来! 众所周知,在中国的SaaS市场,CRM始终是最受关注的细分领域,原因无他:一是市场增速快,二是产品创新快. 据移动信息化研究中心调研显示,2017年中国CRM云销 ...
最新文章
- 42、Java服务内存OOM原因分析
- 20200706:不同路径 II(leetcode63)
- 处理ajax表单验证结果,使用 jQuery Form 插件完成带数据验证的 Ajax 表单
- Thinking in Java 10.8.1 闭包与回调
- WINDOWS下git的安装与使用
- 计算机控制课设串级回路,计算机控制系统课程设计
- 梳理需求-需求调研报告
- 【计算机毕业设计】题库管理系统的设计与实现
- 《黑客攻防从入门到精通》:社会工程学
- 【数竞笔记2】—— 常见积分方法
- 单片机学习笔记-基础知识
- VM虚拟机安装苹果雪豹操作系统
- AD16摆放元件丝印
- 黑马程序员—C#多线程
- UltraISO Premium Edition9.7.1.3519完美破解版
- 北美电话号码的合法性验证和格式化
- windows常见系统进程
- Arduino基础篇(一)-- 打开Arduino的大门
- 【关于c++中或逻辑运算法||执行顺序问题】
- Docker技术原理
热门文章
- u盘linux和win7双系统安装教程,双系统安装Win7系统U盘安装linux centos7,详细步骤...
- 第一次遇见TW——实习生面试
- 让Windows XP系统启动时不输入密码自动登录
- 优思学院|3M的传奇故事和六西格玛管理
- 在亲生经历被非法APP诈骗中总结经验教训--网络安全
- python带你制作一个gequ下载器,海量gequ免费听
- 时系列数据分析应用图
- 拳王虚拟项目公社:聊聊虚拟资源项目虚拟资源倒卖生意怎么赚钱?
- 赛门铁克VCS(Veritas Cluster Server)的资源说明
- diskgenius恢复文件(diskgenius恢复文件收费)