doc
https://developer.work.weixin...
app
go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
const (
CorpId = "xxxxxxxxx"
CorpSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-k"
AgentId int = 1xxxxxxx
)
type T struct {
Errcode int `json:"errcode"`
Errmsg string `json:"errmsg"`
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
}
type T2 struct {
Touser interface{} `json:"touser"`
Msgtype string `json:"msgtype"`
Agentid int `json:"agentid"`
Text struct {
Content interface{} `json:"content"`
} `json:"markdown"`
Safe int `json:"safe"`
}
type T3 struct {
Errcode int `json:"errcode"`
Errmsg string `json:"errmsg"`
Msgid string `json:"msgid"`
}
func GetToken(CorpId string, CorpSecret string) (*T) {
url := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s", CorpId, CorpSecret)
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println("######", string(body))
var assetList T
err = json.Unmarshal(body, &assetList)
return &assetList
}
func SendMessage(token string, comment string, userName string) *T3 {
var j T2
j.Agentid = AgentId
j.Text.Content = comment
j.Touser = userName
j.Msgtype = "markdown"
j.Safe = 0
data, err := json.Marshal(j)
if err != nil {
fmt.Println("err was %v", err)
}
fmt.Println(string(data))
reader := bytes.NewReader(data)
uri := "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + token
client := &http.Client{}
req, err := http.NewRequest("POST", uri, reader)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println("####send msg##", string(body))
var assetList T3
err = json.Unmarshal(body, &assetList)
return &assetList
}
func main() {
token1 := GetToken(CorpId, CorpSecret )
//fmt.Println(token1.AccessToken)
SendMessage(token1.AccessToken, "### hallo, ich bin TixnxxxXiang \n <font color=\\\"info\\\">Gutgen Tag</font> \n * Lexbzenhn", "lixxxxg@xiaoxxxxshu.com")
}
python
def send_wechat_markdown(username, content):
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxxxx&corpsecret=xxxxxxk"
re = requests.get(url)
token = json.loads(re.content).get("access_token")
print(token)
url2 = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + token
data = {
"touser": username,
"msgtype": "markdown",
"agentid": xxxxxx,
"markdown": {
"content": content
},
"safe": 0
}
data2 = json.dumps(data)
r = requests.post(url2, data2)
print("###", r.text, "###")
r.close()
chatgroup
go
type ChatGroupJsonRes struct {
Msgtype string `json:"msgtype"`
Markdown struct {
Content interface{} `json:"content"`
} `json:"markdown"`
}
type T4 struct {
Errcode int `json:"errcode"`
Errmsg string `json:"errmsg"`
}
func SendMsgChatGroupPerson(webhook string, person []string, comment string) (*T4) {
var j ChatGroupJsonRes
var perSionComment string
for i, p := range person {
fmt.Println(i)
perSionComment = perSionComment + fmt.Sprintf("<@%s>", p)
}
j.Msgtype = "markdown"
j.Markdown.Content = comment + "\n" + perSionComment
data, err := json.Marshal(j)
if err != nil {
fmt.Println("err was %v", err)
}
fmt.Println(string(data))
reader := bytes.NewReader(data)
client := &http.Client{}
req, err := http.NewRequest("POST", webhook, reader)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println("####send msg##", string(body))
var assetList T4
err = json.Unmarshal(body, &assetList)
return &assetList
}
func main() {
userlist := []string{"litxang@xxhongshu.com", "yxu1@xxgshu.net"}
url := "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxx"
SendMsgChatGroupPerson(url, userlist, "## hallo goway")
}
python
def send_markdown_msg_person(content, wx_url, group_list):
# group_list 为list格式
quserid = ''
for i in group_list:
quserid += '<@{userid}>'.format(userid=i)
print("###userid:", quserid)
content1 = content + '\n' + quserid
# group_list 为list格式
print(group_list, "#####group_list#dd#########")
data = json.dumps({"msgtype": "markdown", "markdown": {"content": content1}})
r = requests.post(wx_url, data, auth=('Content-Type', 'application/json'))
print(r.text)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。