Golang 实现微信报警
来源:互联网 发布:空气加湿器 知乎 编辑:程序博客网 时间:2024/05/16 05:31
Golang 实现微信报警,为系统的监控提供了方便
转自:苏州 狄
通过企业微信创建应用,然后设定当前的应用对某些用户可见,同时微信提供了各种接口,供开发人员调用,实现发送各种文本信息,图片,音频,视频等等。
1, 注册企业微信
首先,你得有一个企业微信,没有的自行百度注册一个。
在有企业微信的前提之下,进入企业微信管理平台(当然需要管理员权限)。微信的API文档有详细的介绍,可详细的阅读。点击企业应用选项,在下方选择自建应用的创建应用按钮。
设置头像,应用名称,应用描述之后,点击创建应用即可。
创建完应用之后,需要为这个应用设定课件范围,也就是向哪些好友提供这个应用。选择刚刚创建的应用,点击可见范围,选择人即可。
这时候,这个应用就创建好了,简单测试一下,选择发送消息,输入要发送的消息,选择特定的人群,点击发送,这时候在我们的企业微信上特定的选中人群就会收到刚刚发送的消息。
2.调用API接口,发送消息
微信的API文档中的发送消息里,详细的讲解了开发人员需要做的事。
https://work.weixin.qq.com/api/doc#10167
2.1
根据企业微信的CorpID 和应用的 Secret获取tokenCorpID 在我的企业里,Secret在刚刚创建的应用里。
2.2
根据获取的token,发送要发送的内容,在发送之前需要指定发送的部门和人员,具体的设置方法见文档。
代码如下
package mainimport ( "bytes" "encoding/json" "errors" "flag" "fmt" "io/ioutil" "net/http")const ( //发送消息使用导的url sendurl = `https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=` //获取token使用导的url get_token = `https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=`)var requestError = errors.New("request error,check url or network")type access_token struct { Access_token string `json:"access_token"` Expires_in int `json:"expires_in"`}//定义一个简单的文本消息格式type send_msg struct { Touser string `json:"touser"` Toparty string `json:"toparty"` Totag string `json:"totag"` Msgtype string `json:"msgtype"` Agentid int `json:"agentid"` Text map[string]string `json:"text"` Safe int `json:"safe"`}type send_msg_error struct { Errcode int `json:"errcode` Errmsg string `json:"errmsg"`}func main() { touser := flag.String("t", "GaoXing", "-t user 直接接收消息的用户昵称") agentid := flag.Int("i", (填写自己的), "-i 0 指定agentid") content := flag.String("c", "微信报警", "-c 'Hello world' 指定要发送的内容") corpid := flag.String("p", "------(填写自己的)------", "-p corpid 必须指定") corpsecret := flag.String("s", "------(填写自己的)-------", "-s corpsecret 必须指定") flag.Parse() if *corpid == "" || *corpsecret == "" { flag.Usage() return } var m send_msg = send_msg{Touser: *touser, Toparty: "C_G_X", Msgtype: "text", Agentid: *agentid, Text: map[string]string{"content": *content}} token, err := Get_token(*corpid, *corpsecret) if err != nil { println(err.Error()) return } fmt.Println("获取token成功:", token) buf, err := json.Marshal(m) if err != nil { return } err = Send_msg(token.Access_token, buf) if err != nil { println(err.Error()) } else { fmt.Println("发送消息成功", string(buf)) }}//发送消息.msgbody 必须是 API支持的类型func Send_msg(Access_token string, msgbody []byte) error { body := bytes.NewBuffer(msgbody) resp, err := http.Post(sendurl+Access_token, "application/json", body) if resp.StatusCode != 200 { return requestError } buf, _ := ioutil.ReadAll(resp.Body) resp.Body.Close() var e send_msg_error err = json.Unmarshal(buf, &e) if err != nil { return err } if e.Errcode != 0 && e.Errmsg != "ok" { return errors.New(string(buf)) } return nil}//通过corpid 和 corpsecret 获取tokenfunc Get_token(corpid, corpsecret string) (at access_token, err error) { resp, err := http.Get(get_token + corpid + "&corpsecret=" + corpsecret) if err != nil { return } defer resp.Body.Close() if resp.StatusCode != 200 { err = requestError return } buf, _ := ioutil.ReadAll(resp.Body) err = json.Unmarshal(buf, &at) if at.Access_token == "" { err = errors.New("corpid or corpsecret error.") } return}
转载:http://blog.csdn.net/fyxichen/article/details/52256185
我将微信报警做成了一个服务:
GitHub: https://github.com/ukinhappy/WeChatAlarmServer
阅读全文
0 0
- Golang 实现微信报警
- zabbix实现微信报警
- zabbix如何实现微信报警
- zabbix借助onealert实现微信报警
- Zabbix实现微信报警功能
- Python-WXPY实现微信监控报警
- zabbix 结合企业微信实现微信报警功能
- Nagios微信报警
- zabbix微信报警
- Zabbix监控整合OneAlert报警平台实现邮件、短信、微信、电话多方式报警
- zabbix2.4 微信报警
- zabbix微信报警脚本
- zabbix3.0 微信报警
- 微信服务号报警
- zabbix微信报警脚本
- 整合nagios+cacti+微信、飞信实现网络监控系统报警
- Golang微信支付
- 运维报警 微信报警 python版
- Altium Designer画元器件封装三种方法
- LINUX(1)
- python3爬虫(网页下载)
- Linux命令英文全称
- python:NumPy基础(2),通用函数及数据处理
- Golang 实现微信报警
- 编程题
- 快速转载感兴趣的博客的方法
- Servlet实现验证码
- PHP变量的作用域
- border-radius如何通过photoshop取得半径值
- Java 多态
- advisor 2002的安装
- Oracle数据库实现分页