推送局域网的公网地址到企业微信应用

前提条件

1 已经注册了自己的企业微信 企业

2 自己的企业微信添加了pushplus 推送应用


func push() {
    //获取公网ip
    req, err := http.NewRequest(http.MethodGet, "http://ip.me/", nil)
    req.Header.Set("User-Agent", "curl/7.58.0")
    req.Header.Set("Accept", "*/*")
    cli := http.Client{
        Timeout: time.Second * 30,
        Transport: &http.Transport{
            Proxy:               http.ProxyFromEnvironment,
            TLSHandshakeTimeout: time.Second * 10,
        },
    }
    resp, err := cli.Do(req)
    if err != nil {
        fmt.Printf("get access_token err[%v]", err)
        return
    }
    if resp.StatusCode != http.StatusOK {
        return
    }
    bIp, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return
    }
    bIp = bytes.TrimSpace(bIp)
    fmt.Printf("ip=[%s]\n", bIp)

//获取企业微信应用access_token

    res, err := http.Get("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=你自己的企业Id&corpsecret=你自己的企业应用sec")
    if err != nil {
        fmt.Printf("get access_token err[%v]", err)
        return
    }
    if res.StatusCode != http.StatusOK {
        return
    }
    bRes, err := ioutil.ReadAll(res.Body)
    if err != nil {
        return
    }
    o := struct {
        ErrCode     int    `json:"errcode"`
        ErrMsg      string `json:"errmsg"`
        AccessToken string `json:"access_token"`
        ExpiresIn   int    `json:"expires_in"`
    }{}
    err = json.Unmarshal(bRes, &o)
    if err != nil {
        return
    }

    tmpl := `{
        "touser" : "@all",
            "msgtype" : "mpnews",
            "agentid" : 1000002,
            "mpnews" : {
            "articles":[
    {
    "title": "公司IP地址",
    "thumb_media_id": "企业微信上传图片素材后,点击另存为可以获取到这个图片id,推送图文消息的缩略图",
    "author": "作者",
    "content": "%s<br/><br/><a>http://%s:5556/</a>",
    "digest": "%s"
    }
    ]
    },
    "safe":0,
    "enable_id_trans": 0,
    "enable_duplicate_check": 0,
    "duplicate_check_interval": 1800
    }`
    content := fmt.Sprintf(tmpl, bIp, bIp, bIp)
    fmt.Printf("content=[%s]\n", content)
    
    uri := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s", o.AccessToken)
    res, err = http.Post(uri, "application/json", bytes.NewReader([]byte(content)))
    if err != nil {
        fmt.Println(err)
        return
    }
    if res.StatusCode != http.StatusOK {
        return
    }
    bRes, err = ioutil.ReadAll(res.Body)
    fmt.Printf("res=[%s]\n", bRes)

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值