go语言链接微信API
以下是链接微信API的示例代码,使用的是Go语言:
package main
import (
"fmt"
"net/http"
"io/ioutil"
"encoding/json"
)
const (
appID = "your_app_id"
appSecret = "your_app_secret"
)
type AccessTokenResponse struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
}
func main() {
// 获取access token
accessToken, err := getAccessToken(appID, appSecret)
if err != nil {
fmt.Println("获取access token失败:", err)
return
}
fmt.Println("access token:", accessToken)
// 发送模板消息
err = sendTemplateMessage(accessToken, "openid", "template_id", "http://example.com", "#FF0000", "hello world")
if err != nil {
fmt.Println("发送模板消息失败:", err)
return
}
fmt.Println("发送模板消息成功")
}
func getAccessToken(appID, appSecret string) (string, error) {
url := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", appID, appSecret)
resp, err := http.Get(url)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
var tokenResponse AccessTokenResponse
err = json.Unmarshal(body, &tokenResponse)
if err != nil {
return "", err
}
return tokenResponse.AccessToken, nil
}
func sendTemplateMessage(accessToken, openID, templateID, url, color, content string) error {
data := map[string]interface{}{
"touser": openID,
"template_id": templateID,
"url": url,
"data": map[string]interface{}{
"content": map[string]string{
"value": content,
"color": color,
},
},
}
jsonData, err := json.Marshal(data)
if err != nil {
return err
}
url := fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s", accessToken)
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
return err
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return err
}
fmt.Println("发送模板消息响应:", string(body))
return nil
}
该示例代码演示了如何获取access token以及如何发送模板消息。其中,getAccessToken函数用于获取access token,sendTemplateMessage函数用于发送模板消息。需要替换appID和appSecret为自己的应用ID和应用密钥。同时,需要替换openID、templateID、url、color和content为自己的模板消息参数。
原文地址: https://www.cveoy.top/t/topic/b1iJ 著作权归作者所有。请勿转载和采集!