监控服务器调用微信API给自己发告警信息

今天心血来潮,想试试用微信公众号给自己发消息。主要是想如果运维监控的设备故障时可以通过微信告警。

查了一下开发者文档,发现普通未认证订阅号不能通过API群发,认证订阅号每天只能群一条信号,而认证的服务号每月发给每个月户也只有4条。瞬间心凉了一半,于是网上又搜了一下,发现有个“WeiXin-Private-API-master”的东东说是可以单独给每个关注的用户发送,于是下载试了一下,失败。再去查查官方文档,已找不到这个“single send”接口,官方的FAQ里回答也是没有这个功能。

最后使用公众平台测试账号,最后总算成功了。具体的步骤如下:

注:测试账号每天可以发送100条分组群发信息和100条openid列表群发信息。

1.注册公众平台订阅号(个人的未认证订阅号即可)

2.开通开发者中心功能,注册公众平台测试账号。获取到appID和appsecret

3.通过appID和appsecret获取access_token。(也即是临时凭证,有效时间为两小时,需要在到期前去更新)。获取的url为

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

(将上面的APPID和APPSECRET替换成第2步获取到的ID和密码)

4.使用个人微信号关注这个测试账号,关注后在右方会出现加密后的微信号(也就是OpenID)

5.通过脚本调用API,这里用PHP,以OpenID列表群发为例

<?php
$post_data = array( "touser"=>array(‘OpenID1‘, ‘OpenID2‘), 
//把OpenID替换成第4步获取到的加密微信号注意这里至少要两个OpenID,否则会返回错误信息。如果只有一个账号关注了的话,可以自己再随便造一个,或两个OpenID写成一样
                    "msgtype"=> "text",
                    "text" => array( "content" => "I am msg.") 
            );  
$post_data = json_encode($post_data) ;

//因为API只接受json的格式的数据,所以要进行json encode,当然,以上的代码也可直接写成下面这样:
//$postdata = ‘{"touser":["OpenID1","OpenID2"],"msgtype":"text","text":{"content":"I am msg."}}‘;

$url=‘https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN‘;
//把ACCESS_TOKEN替换成第3步获取到的token

$ch = curl_init();  
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_URL,$url);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $p);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
//上面两行是为了解决https证书问题,不加的话会报错,所以直接信任证书了。
$result=curl_exec($ch); echo curl_error($ch);curl_close($ch);
print_r($result);

6.用浏览器打开这个页面,显示成功:

7.在手机上查看订阅号发来的信息。(有一些延迟,所以对于需要紧急处理的监控不适合用微信订阅号来发)

最后再强调一下,为了腾讯了为安全,使用access_token,两小时就超时,所以要在超时前重新获取,可以直接在代码里进行刷新获取。测试账号每天可获取最大次数为2000次。

时间: 2024-10-12 04:43:42

监控服务器调用微信API给自己发告警信息的相关文章

大叔也说Xamarin~Android篇~调用远程API接口,发POST请求

Xamarin我们在上节已经教大家如何去部署它的环境了,今天来说一个实际的例子,使用android客户调用.net web api的一个接口,并发送POST请求,当服务端回到请求后做出响应,客户端android将响应的内容输出,并跳换到别一个Activity页面,在新视图上加载网页内容到webView控件上,整个流程结束! 一 在主页面上添加几个表单元素,账号,密码,登陆按钮,并在Activity类的OnCreate方法中为它们赋值,并添加按钮的click事件 protected overrid

调用微信退款接口或发红包接口时出现System.Security.Cryptography.CryptographicException: 出现了内部错误 解决办法

我总结了一下出现证书无法加载的原因有以下三个 1.证书密码不正确,微信证书密码就是商户号 解决办法:请检查证书密码是不是和商户号一致 2.IIS设置错误,未加载用户配置文件 解决办法:找到网站使用的应用程序池-->右击-->高级设置-->打开如下图-->在加载用户配置文件选择true 3.如果以上两个方案都不能解决问题,就有可能是加载证书时没有给定证书存储标识 解决方法:在加载证书方法时使用以下方法,请注意第三个参数 X509Certificate2 cer = new X509C

python调用微信API

#!/usr/bin/env python # -*- coding:utf-8 -*- # 2017-07-25 编写 import json import sys import urllib, urllib2 """ CorpID 企业ID Secret 应用密钥 """ CorpID  = '' Secret  = '' touser  = '@all' content = '' #获取access_token def getToken(C

.net Core 调用微信Jsapi接口,H5解析二维码

项目里需要用到扫描二维码,自己实现,不会. 找到了两种解决方案: 通过reqrcode.js,这是一个前端解析二维码内容的js库.如果二维码比较清晰,用这种效果也不错 调用微信扫一扫功能,这种效果很好.但是调试接口超级麻烦. 具体实现:前端代码(vue)(前端用到 vux) <template> <div class="main"> <group title="打印机参数" label-width="5.5em"&g

微信程序开发系列教程(三)使用微信API给微信用户发文本消息

这个系列的第二篇教程,介绍的实际是被动方式给微信用户发文本消息,即微信用户关注您的公众号时,微信平台将这个关注事件通过一个HTTP post发送到您的微信消息服务器上.您对这个post请求做了应答(格式为文本),则该应答会通过微信平台投递到您粉丝的微信应用上. 微信开发者中心的文档将这种行为称为"被动回复用户消息": 回复消息报文的格式在开发者文档里也有清晰的定义,是一个xml格式的字符串.我的第二篇教程里也有具体的发送该报文的代码示例. 本文作为这个开发系列的第三篇教程,介绍的是如何

用gson和httpclient调用微信公众平台API

吐槽:微信api很无语,部分用xml,部分用json. 最近在找如何调用微信公众平台关于json相关的api比较方便,最后发现httpcliect和gson不错.如果你有更好的方式,请告诉我. 以下代码先了解如何使用gson和httpclient,有功夫再整到我的sophia里 import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.

Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰

最近要做个课程设计,使用微博控制树莓派,树莓派再控制发光二极管的亮和灭,主要设计分两层,上层是用Java调用新浪微博API来实现对微博旳监听,当我的微博被回复时能够自动读取评论内容,并根据评论的指令内容来决定树莓派的控制动作.下层是用C语言调用操作系统底层接口来实现用树莓派GPIO接口控制发光二极管的闪烁.亮灭. 由于网上教程都很老了,最近微博接口发生了很多变化,所以我决定全新写一篇详细的博文,如若能对您起到帮助作用,那将是我莫大的荣幸.同时我非常希望能与您交流,有问题请在评论里回复我. 本文将

asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文

近公司项目上在开发微信服务号的接口,需要给用户回复图片或语音或视频,这个时候就需要用到 上传下载多媒体文件接口,微信在这方面推荐采用的是开源函数库curl实现的,CURL项目包括很多版本,我主要测试的是windows 平台下的版本,是很好用的,下面附上说明及CURL下载地址在asp.net中,可以调用cmd命令行,运行这个脚本,实现上传下载的功能,但我需要讲的重点不在此,做为一个在线运行的项目,允许网站目录下可以运行.exe的程序是非常不安全的,所以接下来的DEMO是采用asp.net(c#)的

微信api调用限制,45009 reach max api daily quota limit 解决方法

官方文档: https://developers.weixin.qq.com/doc/offiaccount/Message_Management/API_Call_Limits.html 公众号调用接口并不是无限制的.为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码: {"errcode":45009,"errmsg":"api freq out of