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

/**
 * 发送友盟推送消息
 * @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

时间: 2025-01-18 14:41:19

thinkphp整合系列之友盟消息推送的相关文章

友盟消息推送

博主也是第一次使用友盟消息推送,其中的配置我也不需要多讲,在这里附上iOS客户端友盟消息推送的集成文档,并讲讲个人使用心得 iOS友盟消息推送集成文档 这里既有集成文档的讲解步骤,还有证书配置的指南,只需要按照步骤集成即可. 1.配置服务器地址 友盟消息推送后台:适配iOS9,在info.plist文件中按截图配置 以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求.目前可用如下两种方式保持用HTTP进行网络连接:

.NET手记-友盟消息推送服务器端加密算法的实现

最近为App开发消息推送功能,这里我们采用了友盟的消息推送服务,但其后台简陋,可定制化程度低,所以决定接入服务器端API,在自己的服务器上部署一套推送服务. 其中涉及到很多问题,首先要解决的就是与友盟服务器的加密验证问题. 官方示例 友盟官方的加密算法使用Python实现的,核心是MD5算法,如下: import hashlib import json def md5(s): print s m = hashlib.md5(s) return m.hexdigest() appkey = '你的

友盟消息推送新版 SDK 为什么要支持多包名推送?

友盟消息推送 Android SDK 升级至 v 1.4.1 版本了!那问题来了,v 1.4.1 版本有什么新功能呢? “支持多包名推送”!新版 SDK 下载地址 开发者都知道,对于各种 Android 应用,特别是 Android 游戏而言,针对不同的渠道定制版本.使用不同的包名是运营中常见的一环,但是这样会导致后续使用消息推送时工作量过大,每个包都要单独推送,费时费力,还难以做到精准推送,效率低下……在不改变使用多包名的现状下,该如何提升消息推送效率? 友盟消息推送团队新推出的“多包名推送”

友盟消息推送安卓文档、 python端sdk、demo代码

一,友盟消息推送python服务端sdk地址和文档地址 1.sdk地址:http://dev.umeng.com/system/resources/W1siZiIsIjIwMTYvMDgvMTkvMTdfNDFfMzhfNzg2X3B1c2hfc2VydmVyX3B5c2RrLnppcCJdXQ/push-server-pysdk.zip 2.文档:http://dev.umeng.com/push/android/api-doc 二.python官方sdk代码中的错误(没错!官方代码有错.)

【转载自友盟消息推送iOS文档】在appDelegate中注册推送

1.2   基本功能集成指南 提示 请先在友盟的消息推送管理后台中创建App,获得AppKey和AppSecret 导入SDK 下载 UMessage_Sdk_All_x.x.x.zip并解压缩 导入插件 所需SDK文件夹:UMessage_Sdk_x.x.x 请在你的工程目录结构中,右键选择Add->Existing Files…,选择这个文件夹.或者将这个文件夹拖入XCode工程目录结构中,在弹出的界面中勾选Copy items into destination group's folder

友盟消息推送(一)

最近项目打算做推送功能,最后选择了友盟推送,集成友盟sdk,非常的方便. 第一步: 首先登陆友盟官网,注册友盟账号 然后选择消息推送模块,(因为该项目只做推送功能) 第二部: 添加应用:分ios和安卓两个应用,选择ios客户端,完善信息 完善后的信息截图如下:这一步是获取AppKey和        应用名保持和你做的项目一致. 点击提交并获取AppKey. 每个项目的AppKye是唯一的,在集成sdk时将AppKey集成到项目中,如图 接下就设置消息的推送证书,可以参考友盟的证书设置指南非常的

友盟消息推送初试

注册与下载sdk略过,直接贴代码 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.monta.paopao" android:versionCode="1" android:versionName=

友盟消息推送UPush

第一步:把下载的SDK里面的PushSDK当做Module导入自己的项目 第二步:在自己项目的build.gradle里面一定要配置applicationId defaultConfig { applicationId "应用的包名" minSdkVersion 8 targetSdkVersion 22 } 第三步:在主module的build.gradle文件的dependencies下添加compile project(':PushSDK'). ompile project(':

友盟消息推送和更新XML配置

1 <receiver 2 android:name="com.umeng.message.NotificationProxyBroadcastReceiver" 3 android:exported="false" > 4 </receiver> 5 6 <receiver 7 android:name="com.umeng.message.RegistrationReceiver" > 8 <inte