以下是链接微信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函数用于发送模板消息。需要替换appIDappSecret为自己的应用ID和应用密钥。同时,需要替换openIDtemplateIDurlcolorcontent为自己的模板消息参数。


原文地址: https://www.cveoy.top/t/topic/b1iJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录