0

0

PHP 友盟消息推送类

不言

不言

发布时间:2018-05-31 17:16:16

|

5669人浏览过

|

来源于php中文网

原创

这篇文章主要介绍了关于php 友盟消息推送类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

host = 'https://msgapi.umeng.com/api/send';
            $this->app_key = $options['app_key'];
            $this->appMasterSecret = $options['appMasterSecret'];

            $this->description = "友盟接口推送";

        }else{
            return false;
        }

    }


    /**
     * @param $info
     * @param $device_token
     * @return mixed|string
     * 用户单播 和 列播
     */
    public function Android_Device_Push($info, $device_token)
    {
        $data['appkey'] = $this->app_key;
        $data['timestamp'] = time(); //时间戳

        if(is_array($device_token)){

            //批量用户列播
            $data['type'] = 'listcast';
            $data['device_tokens'] =  implode(',',$device_token); //数组转字符串

        }else{

            //一个用户单播
            $data['type'] = 'unicast';
            $data['device_tokens'] =  $device_token;
        }

        //payload内容
        $data['payload']['display_type'] = 'notification'; //通知消息

        //payload body内容
        $data['payload']['body']['after_open'] = "go_custom"; //后续操作打开app

        $data['payload']['body']['ticker'] = $info['ticker'];
        $data['payload']['body']['title'] = $info['title'];
        $data['payload']['body']['text'] = $info['title']; //广播通知不能为空补填

        //这里可以写附加字段
        $data['payload']['extra']['type'] = $info['type'];  //附加字段类型


        $data['production_mode'] = $info['production_mode'];

        $data['description'] = $this->description;

        return $this->send($data, $this->host, $this->appMasterSecret);
    }

    /**
     * @param $info
     * @return mixed|string
     * 广播
     */
    public function Android_Broadcast($info)
    {
        $data['appkey'] = $this->app_key;
        $data['timestamp'] = time(); //时间戳

        //广播消息
        $data['type'] = 'broadcast';

        //payload内容
        $data['payload']['display_type'] = 'notification'; //通知消息

        //payload body内容
        $data['payload']['body']['after_open'] = "go_custom"; //后续操作打开app

        $data['payload']['body']['ticker'] = $info['ticker'];
        $data['payload']['body']['title'] = $info['title'];
        $data['payload']['body']['text'] = $info['title']; //广播通知不能为空补填

        $data['payload']['extra']['type'] = $info['type'];  //附加字段类型1 跳转消息详情
        $data['payload']['extra']['prod_id'] = $info['prod_id'];  //附加字段消息详情id
        $data['payload']['extra']['text'] = $info['text']; //

        $data['production_mode'] = $info['production_mode'];

        $data['description'] = $this->description;

        return $this->send($data, $this->host, $this->appMasterSecret);
    }

    /**
     * @param $info
     * @param $device_token
     * @return mixed|string
     * 单播 和 列播
     */
    public function Ios_Device_Push($info, $device_token)
    {
        $data = array();

        $data['appkey'] = $this->app_key;
        $data['timestamp'] = time(); //时间戳

        if(is_array($device_token)){

            //批量用户列播
            $data['type'] = 'listcast';
            $data['device_tokens'] =  implode(',',$device_token); //数组转字符串

        }else{

            //一个用户单播
            $data['type'] = 'unicast';
            $data['device_tokens'] =  $device_token;
        }

        //payload内容
        $data['payload']['aps']['alert'] = $info['text']; //消息主体
        $data['payload']['aps']['sound'] = 'default'; //声音

        $data['payload']['type'] = $info['type']; //消息类型 0打开消息详情

        $data['payload']['prod_id'] = $info['prod_id']; //消息id
        $data['payload']['title'] = $info['title'];
        $data['payload']['text'] = $info['text']; //

        $data['production_mode'] = $info['production_mode'];

        $data['description'] = $this->description;

        return $this->send($data, $this->host, $this->appMasterSecret);
    }


    public function Ios_Broadcast($info)
    {
        $data = array();

        $data['appkey'] = $this->app_key;
        $data['timestamp'] = time(); //时间戳

        //广播消息
        $data['type'] = 'broadcast';

        //payload内容
        $data['payload']['aps']['alert'] = $info['title']; //消息主体
        $data['payload']['aps']['sound'] = 'chime'; //声音
        $data['payload']['aps']['badge'] = 1; //显示角标

        $data['payload']['type'] = $info['type']; //消息类型 0打开消息详情

        $data['payload']['prod_id'] = $info['prod_id']; //消息id
        $data['payload']['title'] = $info['title'];
        $data['payload']['text'] = $info['ticker']; //

        $data['production_mode'] = $info['production_mode'];

        $data['description'] = $this->description;

        return $this->send($data, $this->host, $this->appMasterSecret);
    }

    /**
     * @param $data
     * @param $url_s
     * @param $appMasterSecret
     * @return mixed|string
     * curl 请求
     */
    private function send($data, $url_s, $appMasterSecret)
    {
        $postBody = json_encode($data);

        //加密
        $sign = md5("POST" . $url_s . $postBody . $appMasterSecret);
        $url = $url_s . "?sign=" . $sign;

        $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, 5);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postBody );
        $result = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $curlErrNo = curl_errno($ch);
        $curlErr = curl_error($ch);
        curl_close($ch);

        // print_r($result);
        // exit;

        if ($httpCode == "0") {
            // Time out
            return ("Curl error number:" . $curlErrNo . " , Curl error details:" . $curlErr . "\r\n");
        } else if ($httpCode != "200") {
            return ("Http code:" . $httpCode .  " details:" . $result . "\r\n");
        } else {
            return $result;
        }
    }
}

?>
 umeng = new AlliesClass($options);

    $info['ticker'] = '';
    $info['title'] ='';
    $info['title'] =''; //广播通知不能为空补填
    $info['type'] = 4;  //附加字段类型1 跳转消息详情
    $info['text'] = '提醒'; //
    $info['production_mode'] = 'false';

    $value=$this->umeng->Android_Device_Push($info, $token);  //单播传入数据和用户token

    $value=$this->umeng->Android_Broadcast($info);  //广播直接传入数据
?>

以上就是本篇文章的全部内容了,感谢大家阅读。更多请关注PHP中文网!

相关推荐:

PHP房贷计算

H5竞价在线订单系统1.0
H5竞价在线订单系统1.0

H5竞价在线订单系统是以php进行开发的在线订单网站源码。竞价单页一直都是比较火爆的一类源码,很多做产品竞价的朋友几乎都会找这样的源码,因为做搜索引擎的竞价推广,如果人工一一对接的话会很累,而且可能下单量要少得多,但是使用竞价单页就不一样了,很多消费者从竞价单页上看完产品介绍以后,直接就填写信息然后下单了,这样就可以让自己的订单滚滚而来。

下载

PHP筛选法求素数

立即学习PHP免费学习笔记(深入)”;

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号