thinkphp如何实现友盟消息推送
这篇文章主要为大家展示了“thinkphp如何实现友盟消息推送”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“thinkphp如何实现友盟消息推送”这篇文章吧。
上篇文章 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关联起来;
三:集成友盟sdk
sdk目录:/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
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','测试')
以上是“thinkphp如何实现友盟消息推送”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341