1.问题背景

1.在一次实际的项目中,需要在一个应用中发送消息提醒相关人员提交对应的表单。于是我查阅了企业微信开发文档有关消息提醒部分,然后按照其指导,实现了如下效果:

2.解决方案:

首先我们需要创建一个企业内部的应用,这一部分自行查阅相关资料,在此就不详述了,然后可以得到应用id和其secret,如下图所示。

然后我们就可以根据文档所说的直接开始写方法啦!
我们可以将企业ID应用IDSecret写成常量:

const (corpid     = "wwXX4tX44XXXXXegb" //企业IDagentId    = "000000"             //应用IDsecret     = "XXXXXX"             //Secret
)
//企业微信应用消息提醒方法如下
func SendCardMsg(ToUsers interface{}, title, description, url string) (map[string]interface{}, error) {btntxt := "详情" //可自定义卡片底下的文字qyurl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s", corpid, secret)data, err := httpGetJson(qyurl)if err != nil {log.Println(err)return data, err}errcode := data["errcode"].(float64)if errcode != 0 {log.Println(errcode)return make(map[string]interface{}), nil}access_token := data["access_token"]//卡片内容,不同类型消息通知以下内容需修改(可参考企业微信开发文档)req := map[string]interface{}{"touser":  ToUsers,"msgtype": "textcard","agentid": agentId,"textcard": map[string]interface{}{"title":       title,"description": description,"url":         url,"btntext":     btntxt,},}sendurl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s", access_token)data, err = httpPostJson(sendurl, req)if err != nil {log.Println(err)return nil, err}return data, nil
}//封装了http请求的GET和POST方法,其返回值都是map[string]interface{},方便我们使用。
func httpGetJson(url string) (map[string]interface{}, error) {res, err := http.Get(url)if err != nil {return nil, err}defer res.Body.Close()var data map[string]interface{}err = json.NewDecoder(res.Body).Decode(&data)if err != nil {return nil, err}return data, nil
}
func httpPostJson(url string, data map[string]interface{}) (map[string]interface{}, error) {res, err := json.Marshal(data)if err != nil {return nil, err}resp, err := http.Post(url, "application/json", bytes.NewReader(res))if err != nil {return nil, err}defer resp.Body.Close()var data2 map[string]interface{}err = json.NewDecoder(resp.Body).Decode(&data)if err != nil {return nil, err}return data2, nil
}

以上方法在项目中进行使用,亲测可用哈!欢迎大家互相关注,相互学习进步呀~~~///( v)\~~~

【Golang】实现企业微信消息通知的方法(可在接口中调用)相关推荐

  1. 微信如何取消企业微信消息通知 ?

    企业微信真的很烦,在企业微信里通知一遍,在个人微信里有再通信一遍,那么,有什么办法可能去掉微信里的通知吗?如下.

  2. Jenkins 企业微信消息通知

    和钉钉一样,也需要在群里面添加一个机器人 添加群机器人 企业微信 AgentId 1000006 wUs3TtGLYGnJ5YeezwxK60dEuXJeuF_01unh2TnaFRA  文本消息 { ...

  3. 企业微信消息推送卡片按钮互动的使用

    企业微信回调推送消息互动模板 前置条件 # 企业微信后台中设置了url 按以上设置 # 回调url: http://www.baidu.com# token: xxxxx# EncodingAESKe ...

  4. java企业微信消息发送工具类

    java企业微信消息发送工具类 用途 基于java实现调用企业微信发送消息,文件,图片. 实现效果 文件列表 文件名 用途 WechatUtil.java 企业微信工具类 WechatTest.jav ...

  5. 在蜘蛛表格中实现微信消息通知是这样做到的

    消息通知需求 在很多应用中,各种方式的消息通知是必不可少的功能之一,蜘蛛表格也不例外,涉及消息推送通知的地方很多,总结起来有以下几处: 向管理员用户发送其组织内的重要通知,比如人员被邀请注册.企业账户 ...

  6. 4.Jenkins入门基础使用与邮箱钉钉微信消息通知集成配置与实践

    WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少. Tips : 本文章来源 Blog 站点或者 WeiyiGeek 公众账号 (技术交流.友链交换请邮我哟), 原文地址: 4.J ...

  7. Node-Red 实践:企业微信消息推送

    一个偶然的机会,认识了node-red.这种拖拽控件编写代码的方式给了我很深刻的印象.能够通过简单的拖拽实现mqtt,http,websocket,tcp的服务,作为基于网络的业务流程demon非常方 ...

  8. mulitpartfile怎么接收不到值_手机有时接收不到微信消息通知,怎么办?超全解决方案...

    不知道大家在使用微信的过程中有没有遇到以下情况,在自己看视频或者刷其他网页的时候,没有接收到微信的任何通知和提示的消息.等到你进入微信页面后,突然发现有很多未读信息.这种情况时有发生,很多人都反应说微 ...

  9. 企业微信 - 封装JS-SDK使用方法

    前言 企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包. – 企业微信开发文档 所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),且可信域名必须有ICP备 ...

最新文章

  1. 一次改变未来10年人生的机会
  2. sap oracle 内存参数,ORACLE 25个需要深思熟虑重要的初始化参数
  3. 编程问题之:x=xamp;(x-1)
  4. Thrift在Windows及Linux平台下的安装和使用示例
  5. 哈工大计算机网络Week2-网络应用数据交换
  6. Python中的defaultdict函数
  7. Javascript中“==”与“===”的区别
  8. 在html中取消或加上超链接的下划线
  9. 最大流,最小费用最大流:解析 + 各种板子
  10. kafka集群搭建(消息)
  11. java set取最大最小_Java中取得数组中最大(小)元素的几种实现方法
  12. Pandas index详解
  13. Step by Step-构建自己的ORM系列-索引
  14. 学计算机应用基础学到了什么,2021年学习计算机应用基础心得体会-得范文网
  15. 紫外分光光度法测量蛋白质的含量
  16. 单片机原理及接口技术第1章
  17. lof基金溢价率php源码,一文读懂LOF基金套利策略 LOF是球友们很喜欢的一类基金,这类基金不仅可以在场内进行高效买卖,而且还可以进行折溢价套利。不过这里面牵扯到很多细节,... - 雪球...
  18. 实用一位加法电路-全加器(全加器真值表、全加器的逻辑组合电路)、几种基本组合逻辑电路真值表 补充:逻辑电路基础:与门、或门、非门----计算机组成原理
  19. 《从0到1:CTFer成长之路》SQL注入-2
  20. SaaS,PaaS和IaaS在一张图中进行了解释

热门文章

  1. h5调用android录音,html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia...
  2. 初次约会,如何避免尴尬?这6个话题可以帮你
  3. 2019,投资王思聪,保本零风险
  4. powershell修改字体大小
  5. Java面向对象(OOP)入门
  6. OpenCV图像处理学习六,像素操作,使用line,ellipse,ellipse,rectangle,fillPoly函数绘制线、矩形、圆、椭圆等基本图形以及C++随机数产生器RNG的应用
  7. react的jsx与组件
  8. 降本40%!Redis多租户集群的容器化实践
  9. [转] GLOG 使用
  10. 遨博机器人展示_【AUBO】遨博协作机器人登陆各国工业自动化展