【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 小时前
京聚全球智,算力观新程——视程空间赴2026北京国际人工智能应用与机器人创新博览会
大数据·人工智能·机器人·边缘计算·ai算力开发板
视***间2 小时前
2026:AI算力元年的加冕与思辨
人工智能·microsoft·机器人·边缘计算·智能硬件·视程空间
光于前裕于后3 小时前
配置钉钉龙虾OpenClaw机器人调用OpenMetadata
机器人·钉钉·数据治理·mcp·openclaw
古城小栈3 小时前
Go 底层代码的完整分类
开发语言·后端·golang
耳冉鹅3 小时前
Go无锁共享内存环形缓冲区设计
开发语言·golang
沫儿笙4 小时前
安川焊接机器人双脉冲焊接节气装置
机器人
ZPC82104 小时前
OLOv11 + 深度相机的方案实现高精度3D定位
人工智能·数码相机·算法·机器人
G***技5 小时前
物流自动化迈入边缘智能,杰和科技AR707成为关键引擎
人工智能·嵌入式硬件·机器人·边缘计算盒
9呀5 小时前
【求职】ROS 高频面试题
机器人
INDEMIND5 小时前
牵手海尔、TCL,INDEMIND家用具身陪伴机器人AI平台加速家庭AI陪伴落地
人工智能·机器人·陪伴机器人