系统推送服务器搭建,利用云推送服务搭建自己的消息通知系统

2023-05-16

define('appid','1009*****'); //APP ID

define('appsec','c2910c5bcc905a5729fd********'); //APP SECRET

$tokenfile = fopen("token.txt", "r");

$token=fgets($tokenfile);

fclose($tokenfile);

$device=$_GET['device'];

$title=$_GET['title'];

$message=$_GET['message'];

if(empty($title)){exit('no message!');};

if(empty($token)){gettoken();};

if(empty($device)){$device='0866375047001440300****';}; //app获取到的设备码

$work=sendmsg($title,$message,$device);

if (strstr($work,'timeout')){

gettoken(); //先尝试发送消息,如果失败再重新获取令牌

$work=sendmsg($title,$message,$device);

};

exit($work);

function sendmsg($title,$message,$device){

$date=date_create();

$tokenfile = fopen("token.txt", "r");

$token=fgets($tokenfile);

fclose($tokenfile);

$push='access_token=' . urlencode($token) . '&nsp_svc=openpush.message.api.send&nsp_ts=' . date_timestamp_get($date) . '&device_token_list=' . urlencode('["' . $device . '"]') . '&payload=' . urlencode('{"hps":{"msg":{"type":1,"body":{"isAt":0,"senderType":"1","type":"Mojo-Sys","title":"' . $title . '","message":"' . $message . '","msgId":' . date_timestamp_get($date) . '}}}}');

$result=ssl_post($push,'https://api.push.hicloud.com/pushsend.do?nsp_ctx=' . urlencode('{"ver":"1","appId":"' . appid . '"}') );

return $result;

}

function gettoken(){

$token=json_decode(ssl_post('grant_type=client_credentials&client_secret=' . appsec . '&client_id=' . appid,'https://login.cloud.huawei.com/oauth2/v2/token'),true);

$tokenfile = fopen("token.txt", "w");

try{

fwrite($tokenfile, $token['access_token']);

}

catch(Exception $e){

exit($token);

}

fclose($tokenfile);

return $token['access_token'];

}

function ssl_post($data,$url,$post=1){

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($curl, CURLOPT_POST, $post);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

curl_setopt($curl, CURLOPT_TIMEOUT, 30);

curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$tmpInfo = curl_exec($curl);

if (curl_errno($curl)) {

echo 'Errno'.curl_error($curl);

}

curl_close($curl);

return $tmpInfo;

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统推送服务器搭建,利用云推送服务搭建自己的消息通知系统 的相关文章

  • 虚拟服务器+ftp上传错误,虚拟主机FTP无法上传文件解决办法

    虚拟主机ftp无法上传文件 大家都遇到过吗 如果虚拟主机无法上载文件 xff0c 您可以通过以下方法解决问题 检查是否存在以下情况 1 您要上传文件的文件夹属性是不是 777 的属性 使用 FTP 软件 xff0c 查看目录 xff0c 在
  • ctags的使用

    在windows上进行软件开发 xff0c 有很多的IDE可供选择 xff0c 像是source insight vs等 xff0c 非常方便好用 习惯于windows上的软件开发 xff0c 当转到linux上后 xff0c 没有与win
  • firewall

    centos 7中防火墙是一个非常的强大的功能了 xff0c 但对于centos 7中在防火墙中进行了升级了 xff0c 下面我们一起来详细的看看关于centos 7中防火墙使用方法 FirewallD 提供了支持网络 防火墙区域 zone
  • Spring MVC原理及配置

    Spring MVC原理及配置 1 Spring MVC概述 Spring MVC是Spring提供的一个强大而灵活的web框架 借助于注解 xff0c Spring MVC提供了几乎是POJO的开发模式 xff0c 使得控制器的开发和测试
  • vue 复制功能 复制到剪切板

    首先 使用npm安装依赖 npm install save vue clipboard2 然后在main js中注入 复制到剪切板 import VueClipboard from 39 vue clipboard2 39 Vue use
  • git.教程资料

    1 Git使用教程 最详细 xff0c 最傻瓜 xff0c 最浅显 xff0c 真正手把手教 qq 36150631的博客 CSDN博客 html xff08 https blog csdn net qq 36150631 article
  • maven(私库)上传jar包

    在实际开发过程中 xff0c 我们经常会遇到需要引用的jar依赖 xff0c 在我们公司的maven仓库不存在 xff0c 这个时候我们就需要把jar上传上去 xff0c 在项目中添加对应依赖就OK了 步骤1 下载jar 在http mvn
  • [Vue warn]: Duplicate keys detected: '0'. This may cause an update error.

    1 Vue warn Duplicate keys detected 39 0 39 This may cause an update error 第一眼看到这个错误一脸懵逼 xff0c 项目使用很久了 xff0c 代码也没有改过 xff0
  • jsp 实现修改和删除功能

    main jsp 实现查询 在此界面快捷方式到修改界面 点击修改 会把数据传递到exit jsp 修改 edit jsp 前面数据 xff1a 数据库 xff1a 1 2 Navicat Premium Data Transfer 3 4
  • [nginx]invalid number of arguments

    invalid number of arguments nginx出现以下的错误 xff0c 基本上错误的原因就是少了后面的分号导致 invalid number of arguments in 34 include 34 directiv
  • HDU 2246 考研路茫茫——考试大纲

    HDU 2246 考研路茫茫 考试大纲 聽說這題要打表999 43 就傻傻的從0 N一個個地貼在代碼上了 打了幾個文件 xff0c 一同學就說我錯了 xff0c 杯具 因為提交上去的代碼長度不能超64K 白打了 xff0c 不過提示我測試數
  • MariaDB简介

    一 什么是数据库 DB 与 DBMS xff1a DB xff08 DataBase xff09 即数据库 xff0c 存储已经组织好的数据的容器 DBMS xff08 DataBase Manage System xff09 是数据库管理
  • 面试问题之操作系统:动态链接库和静态链接库的区别

    动态链接库是一个可以被其它应用程序共享的程序模块 xff0c 其中封装了一些可以被共享的例程和资源 动态链接库文件名的扩展名一般是dll xff0c 也有可能是drv xff0c sys和fon xff0c 它和可执行文件 exe 非常类似
  • linux中使用Crontab定时执行java的jar包无法使用环境变量的问题

    1 crontab简单使用 cmd 其实就是5个星星的事情 xff0c 随便百度一下吧 5个时间标签用来标注执行的设定 比如每5分钟执行一次 5 cmd 要特别注意 2 有些命令在命令行里执行很好 xff0c 到了crontab里面不能正常
  • Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范 xff0c 在涉及到Linux版本问题时经常容易混淆 xff0c 主线版本 xff0f 稳定版 xff0f 长期支持版本经常搞不清楚 xff0c 本文主要记录下内核版本命名的规则以及如何查看L
  • kvm介绍

    KVM Kernel Based Virtual Machines 是一个基于Linux内核的虚拟化技术 可以直接将Linux内核转换为Hypervisor xff08 系统管理程 序 xff09 从而使得Linux 内核能够直接管理虚拟机
  • linux安装Topicons Plus解决图标不显示问题

    安装TopIcons Plus地址 https extensions gnome org extension 1031 topicons 1 点击链接下载安装包 然后解压 2 把解压后的文件包 移动到此路径下 xff1a usr share
  • 图像缩放算法(最临近点插值算法、双线性内插值算法、双立方插值算法)

    1 最临近点插值算法 xff1a 当一张 xff08 N M xff09 大小的图像放大到 xff08 xff08 j N xff09 xff08 k M xff09 xff09 时 xff0c 那么两张图像之间的像素点存在对应关系 xff
  • C语言float是什么类型,float是什么数据类型?

    float是浮点型数据类型 float是C语言的基本数据类型中的一种 xff0c 表示单精度浮点数 C语言规定单精度浮点型在内存占用4个字节 xff0c 精度为7位 xff0c 取值范围为 xff1a 3 4 10 38 3 4 10 38
  • 服务器文件 修改,服务器文件修改

    服务器文件修改 内容精选 换一换 远程连接Linux云服务器报错 xff1a Module is unknown修改此问题需要重启进入救援模式 xff0c 请评估风险后进行操作 本节操作涉及云服务器重启操作 xff0c 可能会导致业务中断

随机推荐

  • linux 批量重启机器脚本,(Linux) 一键批量启动、停止、重启Jar包Shell脚本

    废话不多说 xff0c 直接上脚本 xff0c 我这里是以spring cloud项目做的示例 bin sh export EUREKA 61 family eureka 1 0 0 jar export GATEWAY 61 family
  • python用post提交数据_python通过post提交数据的方法

    本文实例讲述了python通过post提交数据的方法 分享给大家供大家参考 具体实现方法如下 xff1a coding cp936 import urllib2 import urllib def postHttp name 61 None
  • Linux shell flock详解,Linux shell:Flock简介

    简介 当多个进程操作同一份资源时 xff0c 为了避免损坏数据 xff0c 每个进程在运行时都要保证其它进程没有同时操作资源 xff0c 这时通过flock命令给资源加锁可以实现此需求 flock 在打开的文件上应用或删除咨询锁 命令flo
  • 如何学习计算机编程语言

    关于如何学习计算机编程语言 xff08 C C 43 43 Java Python PHP xff09 1 计算机编程语言是我们和计算机交流信息的载体 xff0c 我们通过它和计算机 说话 xff0c 计算机听到我们说的话 xff0c 领会
  • WebRTC音视频同步

    这两篇文章 xff0c 可以直接去看 xff1b WebRTC音视频同步机制实现分析 https www jianshu com p 3a4d24a71091 WebRTC音视频同步分析 https blog csdn net lincai
  • nginx编译,修改日志路径

    1 configure without http rewrite module 2 修改objs ngx auto config h ifndef NGX PID PATH define NGX PID PATH 34 var logs n
  • 什么是MySQL执行计划

    要对执行计划有个比较好的理解 xff0c 需要先对MySQL的基础结构及查询基本原理有简单的了解 MySQL本身的功能架构分为三个部分 xff0c 分别是 应用层 逻辑层 物理层 xff0c 不只是MySQL xff0c 其他大多数数据库产
  • SPSS详细操作:生存资料的Cox回归分析

    SPSS详细操作 xff1a 生存资料的Cox回归分析 一 问题与数据 某研究者拟观察某新药的抗肿瘤效果 xff0c 将70名肺癌患者随机分为两组 xff0c 分别采用该新药和常规药物进行治疗 xff0c 观察两组肺癌患者的生存情况 xff
  • 生产者和消费者模型

    生产者和消费者模型 1 什么是生产者和消费者模型 生产者消费者模型具体来讲 xff0c 就是在一个系统中 xff0c 存在生产者和消费者两种角色 xff0c 他们通过内存缓冲区进行通信 xff0c 生产者生产消费者需要的资料 xff0c 消
  • 八大排序算法源码 + 耗时长度比较

    八大排序算法的排序时间长度的比较 xff0c 测试数据10000000时部分结果如下 输入测试数据长度 10000000 数据初始化中 数据初始化完成 堆排序用时 8秒 499毫秒 快速排序用时 22秒 35毫秒 归并排序用时 34秒 47
  • intellij idea - Project Structure 项目结构详解(简单明了)

    IDEA Project Structure 设置 可以点击 按钮 xff0c 或者使用快捷键 Ctrl 43 Shift 43 Alt 43 S 打开 Project Structure 如下如所示 xff1b 项目的左侧面板 Proje
  • Linux下如何查看计算机的配置信息(cpu物理个数、几核)

    查看物理CPU的个数 cat proc cpuinfo grep 34 physical id 34 sort uniq wc l 查看逻辑CPU的个数 cat proc cpuinfo grep 34 processor 34 wc l
  • python的cfg是什么模块_python操作cfg配置文件方式

    cfg文件一般是程序运行的配置文件 xff0c python为读写常见配置文件提供了一个ConfigParser模块 xff0c 所以在python中解析配置文件相当简单 xff0c 下面就举例说明一下具体的操作方法 写文件代码 xff1a
  • 团队价值观五个字_一个优秀的团队应该具有的价值观

    第一 xff1a 树立全局观念 每个员工都应该树立全局观念 xff0c 一个人要想在工作中快速成长 xff0c 就必须把自己的工作纳入全局 xff0c 依靠集体的力量来提升自己 xff1b 每个员工都应该理解并支持企业的整体目标 xff0c
  • matlab中的varargin用法,MATLAB中的nargin与varargin

    varargin 1 定义 xff1a varargin指代的是一个函数的变输入参数列表 所谓的变输入参数列表 xff1a 即varargin可以等价于任意不定个数的输入参数 例如 xff0c F是一个函数 xff0c F a 可以用F v
  • linux和windows局域网连接网络,linux与windows局域网互访

    8种机械键盘轴体对比 本人程序员 xff0c 要买一个写代码的键盘 xff0c 请问红轴和茶轴怎么选 xff1f 场景 做无人机地面站时 xff0c 地面站需要检测数据做实时飞行跟踪和轨迹预测 但是比赛场地设备太多 xff0c 信号嘈杂 x
  • 华为鸿蒙基金,基金筛选:华为鸿蒙新版即将揭开面纱

    如果有人拧熄了灯塔 xff0c 我们怎么航行 xff1f 近日这句由华为创始人任正非发出的声音成为了眼下华为内部思考最多的话题 尤其作为华为 三驾马车 之一的消费者业务部门 xff0c 在接连经受了外部挫折后 xff0c 如何持续前行 xf
  • 360极速浏览器网页保护色

    方法一 xff1a 360浏览器的 扩展中心 有一个 绿色眼睛 的插件 xff1b 但是感觉一般 xff0c 不够彻底 xff1b 方法二 xff1a 360急速浏览器是基于开源Chrome浏览器修改的 xff0c 所以可以直接用Chrom
  • css样式表的标签,CSS样式表标签.doc

    CSS样式表标签 CSS样式表标签选择符大全 一 类型选择符 以下是代码片段 xff1a body font size 12px P color blue 指对网页中已有的标签类型作为名称的选择符 xff0c 如上表示 xff1a body
  • 系统推送服务器搭建,利用云推送服务搭建自己的消息通知系统

    define 39 appid 39 39 1009 39 APP ID define 39 appsec 39 39 c2910c5bcc905a5729fd 39 APP SECRET tokenfile 61 fopen 34 tok