thinkphp整合系列之友盟消息推送
2016-06-11 23:28
483 查看
上篇文章 thinkphp集成系列之phpmailer批量发送邮件讲过的;邮件有着零成本、内容丰富的优点;但是一个非常硬的硬伤;这家伙的及时性太差了;尤其是随着90、00后的崛起;从上网开始体验的就是QQ、微信的即时通讯;唯一有的邮箱也还是自动开通的QQ邮箱;然而还是一连串的未读;那么有木有一种零成本、但是及时性比较好的方案呢?有的;那就是消息推送;当然;前提是用户已经安装了app;今个先就友盟的推送来讲解下;http://push.umeng.com/依然是以开源项目示例:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
一:注册应用工欲善其事必先注其key;找到消息推送、添加应用;获得key和secret;
这里面有2个坑;1:安卓要用的是Appkey和App Master Secret;不是Umeng Message Sercet;2:一定要添加 服务器ip地址、如果是在本地测试;那直接百度下ip;把查出的ip填上即可;
添加测试设备的Device Token;这个是需要由移动端获取的;
二:创建表下载示例项目;安装后会有users表和oauth_user表;users表用来存放用户的账号密码之类的;oauth_user表用来存放移动端发送过来的Device Token;当然;自己设计表也是可以的;主要就是让用户id和Device Token关联起来;三:集成友盟sdksdk目录:/ThinkPHP/Library/Vendor/Umeng
当然;这个sdk也是被我修改过的;具体修改了那些地方;同样也年代久远;没有记录了;配置项:/Application/Common/Conf/config.php
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com
一:注册应用工欲善其事必先注其key;找到消息推送、添加应用;获得key和secret;
这里面有2个坑;1:安卓要用的是Appkey和App Master Secret;不是Umeng Message Sercet;2:一定要添加 服务器ip地址、如果是在本地测试;那直接百度下ip;把查出的ip填上即可;
添加测试设备的Device Token;这个是需要由移动端获取的;
二:创建表下载示例项目;安装后会有users表和oauth_user表;users表用来存放用户的账号密码之类的;oauth_user表用来存放移动端发送过来的Device Token;当然;自己设计表也是可以的;主要就是让用户id和Device Token关联起来;三:集成友盟sdksdk目录:/ThinkPHP/Library/Vendor/Umeng
当然;这个sdk也是被我修改过的;具体修改了那些地方;同样也年代久远;没有记录了;配置项:/Application/Common/Conf/config.php
'UMENG_IOS_APP_KEY' => '', //友盟ios AppKey 'UMENG_IOS_SECRET' => '', //友盟ios App Master Secret 'UMENG_ANDROID_APP_KEY' => '', //友盟android AppKey 'UMENG_ANDROID_SECRET' => '', //友盟android App Master Secret函数:/Application/Common/Common/function.php
/** * 发送友盟推送消息 * @param integer $uid 用户id * @param string $title 推送的标题 * @param integer $type 1:官方小秘书 2:我的评论 * @return boolear 是否成功 */ function umeng_push($uid,$title){ // 获取token $device_tokens=D('OauthUser')->getToken($uid,2); // 如果没有token说明移动端没有登录;则不发送通知 if (empty($device_tokens)) { return false; } // 导入友盟 Vendor('Umeng.Umeng'); // 自定义字段 根据实际环境分配;如果不用可以忽略 $status=1; // 消息未读总数统计 根据实际环境获取未读的消息总数 此数量会显示在app图标右上角 $count_number=1; $data=array( 'key'=>'status', 'value'=>"$status", 'count_number'=>$count_number ); // 判断device_token 64位表示为苹果 否则为安卓 if(strlen($device_tokens)==64){ $key=C('UMENG_IOS_APP_KEY'); $timestamp=C('UMENG_IOS_SECRET'); $umeng=new \Umeng($key, $timestamp); $umeng->sendIOSUnicast($data,$title,$device_tokens); }else{ $key=C('UMENG_ANDROID_APP_KEY'); $timestamp=C('UMENG_ANDROID_SECRET'); $umeng=new \Umeng($key, $timestamp); $umeng->sendAndroidUnicast($data,$title,$device_tokens); } return true; }调用:
umeng_push('1','测试')
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com
相关文章推荐
- 房产界已上市和IPO路上的难兄难弟:房天下与房多多
- 利用百度地图提供的API做的应用
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 百度20年:搜索帝国的崛起、式微与重生
- 小白观察:Google 开始清除百度旗下公司开发的 46 款应用程序
- dns。dhcp,ftp
- 百度全面恢复网站权重,流量暴涨中
- C# IP地址与整数之间转换的具体方法
- SQL语句实现查询SQL Server服务器名称和IP地址
- 可以获取客户端的IP地址的sql语句
- C#如何自动选择出系统中最合适的IP地址
- vc获取计算机名和ip地址的方法
- 百度工程师讲PHP函数的实现原理及性能分析(一)
- C#使用ImitateLogin模拟登录百度
- C#使用有道ip地址查询接口方法实例详解
- 百度 popup.js 完美修正版非常的不错 脚本之家推荐
- javascript实现类似百度分享功能的方法
- js针对ip地址、子网掩码、网关的逻辑性判断
- 百度空间的popup效果分析第1/3页
- JS不能跨域借助jquery获取IP地址的方法