【Go】-调用企微机器人

没有什么好讲的,直接贴代码,消息格式我用的markdown。

sendMsg.go:

go 复制代码
package main

import (
	"flag"
	"fmt"
	"github.com/goccy/go-json"
	"github.com/tidwall/gjson"
	"io/ioutil"
	"net/http"
	"strings"
)

func main() {

	// params
	var msg string
	flag.StringVar(&msg, "msg", "null", "空消息")
	flag.Parse()
	type Params struct {
		Msgtype  string `json:"msgtype"`
		Markdown struct {
			Content string `json:"content"`
		} `json:"markdown"`
	}
	params := Params{
		Msgtype: "markdown",
		Markdown: struct {
			Content string `json:"content"`
		}{
			Content: msg,
		},
	}
	//fmt.Printf("%v\n", params)
	json_date, err := json.Marshal(&params)
	if err != nil {
		fmt.Sprintf("序列化失败:%s", err)
		fmt.Println()
	}
	//fmt.Printf("序列化后:%v\n", string(json_date))

	// POST
	var wx_send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx"
	//fmt.Println(wx_send_url)
	response, err := http.Post(wx_send_url, "text/html;application/json", strings.NewReader(string(json_date)))
	if err != nil {
		fmt.Println(err)
	}

	// Get errcode
	body, err := ioutil.ReadAll(response.Body)
	defer response.Body.Close()
	errcode := gjson.Get(string(body), "errcode").String()
	if errcode != "0" {
		fmt.Println("fail")
		//fmt.Println(json.Unmarshal([]byte(str), &body))
	} else {
		fmt.Println("success")
	}
}

交叉编译参数的设置:

win 编译生成Linux下的可执行文件:

go 复制代码
go env -w CGO_ENABLED=0
go env -w GOOS=linux
go env -w GOARCH=amd64

编译完记得改回来:

go 复制代码
go env -w CGO_ENABLED=0
go env -w GOOS=windows
go env -w GOARCH=amd64
相关推荐
知彼解己1 小时前
RAG 核心实战:检索增强生成
后端·golang·ai编程
子安柠2 小时前
Go语言并发编程:协程与管道详解
开发语言·后端·golang
古月开发3 小时前
AI 自动写周报工具:接入企业微信推送实战
人工智能·企业微信
basketball6164 小时前
Go 语言从入门到进阶:5. 玩转Go函数
开发语言·后端·golang
真的想上岸啊4 小时前
EdgeMind·云边智护机器人:第一篇:从一堆舵机到第一台能动的机器人——EdgeMind 项目立项与底盘搭建记录
笔记·机器人
半导体守望者4 小时前
ADTEC AX-1000Ⅱ电源 RF电源等离子电源操作指南RF PLASMA GENERATOR
学习·机器人·自动化·制造·模块测试
dblens 数据库管理和开发工具4 小时前
DBLens + 企业微信智能机器人:把数据库 Agent 接入工作群
数据库·机器人·企业微信
路人甲3265 小时前
Moravec‘s Paradox and the Robot Olympics
人工智能·深度学习·计算机视觉·机器人·具身智能
不爱编程的小陈5 小时前
Go内存模型与GC机制:高性能编程的核心
开发语言·后端·golang
go不是csgo6 小时前
sync.Map 源码大变天:一棵 16 叉树如何干掉 read/dirty 双 Map
golang