濮阳杆衣贸易有限公司

主頁 > 知識庫 > Go語言實現(xiàn)釘釘發(fā)送通知

Go語言實現(xiàn)釘釘發(fā)送通知

熱門標(biāo)簽:南通如皋申請開通400電話 浙江高速公路地圖標(biāo)注 中國地圖標(biāo)注省會高清 學(xué)海導(dǎo)航地圖標(biāo)注 江西轉(zhuǎn)化率高的羿智云外呼系統(tǒng) 廣州呼叫中心外呼系統(tǒng) 高德地圖標(biāo)注口訣 西部云谷一期地圖標(biāo)注 地圖標(biāo)注的汽車標(biāo)

具體代碼如下所示:

package main
import (
  "bufio"
  "io"
  "fmt"
  "io/ioutil"
  "os/exec"
  "net/http"
  "os"
  "strings"
)
func GetKey() (timestamp string ,sign string, err error){
  cmd := exec.Command("/bin/python", "/application/scripts/hezhong_host_status/aaa.py")
  stdout , err := cmd.StdoutPipe()
  if err != nil {
   fmt.Println("Error:can not obtain stdout pipe for command:%s \n", err)
   return timestamp , sign, err
  }
  if err := cmd.Start() ; err != nil {
   fmt.Println("Error:The command is err ",err)
   return timestamp, sign,err
  }
  var Key []string
  //讀取所有輸出
  bytes := bufio.NewReader(stdout)
  for {
   line ,err:= bytes.ReadString('\n')
   if err == io.EOF{
     break
   }
   if err != nil {
     fmt.Println("Read Err:",err)
   }
   Key = append(Key,line)
  }
  if err := cmd.Wait();err!= nil{
   fmt.Println("Wait",err.Error())
   return timestamp, sign ,err
  }
  timestamp = Key[0]
  sign = Key[1]
  return timestamp ,sign ,nil
}
func SendDingMsg(msg string) {
  //請求地址模板
  timestamp , sign , err := GetKey()
  if err != nil {
   fmt.Println("Get Key Err:",err)
  }
  timestamp = strings.TrimRight(timestamp, "\n")
  sign = strings.TrimRight(sign, "\n")
  //timestamp := time.Now().UnixNano() / 1e6
  //timestamp := int64(1572870805748)
  //sign := "oJ5SHD3IwCWVIcL78k3pgX0tfQnjDfcDZMPXAI%2BvrFE%3D"
  webHook := "https://oapi.dingtalk.com/robot/send?access_token=628d11124aef5f9efe2a8c8a6b5afa2b67ab01dxxxxxxxxxxxxxxxxxxxxx"+ "timestamp=" + timestamp + "sign=" + sign
  content := `{"msgtype": "text",
   "text": {"content": "`+ msg + `"},
        "at": {
           "atMobiles": [
             "18301371817"
           ],
           "isAtAll": true
        }
  }`
  //創(chuàng)建一個請求
  req, err := http.NewRequest("POST", webHook, strings.NewReader(content))
  if err != nil {
   fmt.Println(err)
  }
  client := http.Client{}
  //設(shè)置請求頭
  req.Header.Set("Content-Type", "application/json")
  req.Header.Set("User-agent","firefox")
  //發(fā)送請求
  resp, err := client.Do(req)
  //關(guān)閉請求
  defer resp.Body.Close()
  fmt.Println(resp.StatusCode)
  body,_ := ioutil.ReadAll(resp.Body)
  fmt.Println(string(body))
  if err != nil {
   fmt.Println("handle error")
  }
}
func main(){
  SendDingMsg(os.Args[1])
}

輔助Python腳本:

#!python 2.7
import time
import hmac
import hashlib
import base64
import urllib
timestamp = long(round(time.time() * 1000))
secret = 'this is secret'
secret_enc = bytes(secret).encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = bytes(string_to_sign).encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.quote_plus(base64.b64encode(hmac_code))
print(timestamp)
print(sign)

總結(jié)

以上所述是小編給大家介紹的Go語言實現(xiàn)釘釘發(fā)送通知,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • go開發(fā)alertmanger實現(xiàn)釘釘報警
  • Go語言使用釘釘機(jī)器人推送消息的實現(xiàn)示例

標(biāo)簽:德州 西雙版納 貴陽 慶陽 調(diào)研邀請 廣西 阿克蘇 太原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語言實現(xiàn)釘釘發(fā)送通知》,本文關(guān)鍵詞  語言,實現(xiàn),釘釘,發(fā)送,通知,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語言實現(xiàn)釘釘發(fā)送通知》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go語言實現(xiàn)釘釘發(fā)送通知的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    望奎县| 宜州市| 建阳市| 金山区| 辰溪县| 洛南县| 南京市| 榆中县| 平舆县| 宜兴市| 泽库县| 铜陵市| 顺昌县| 清水县| 宁海县| 平度市| 米泉市| 宜阳县| 尚义县| 临清市| 临邑县| 临海市| 葫芦岛市| 朝阳市| 深泽县| 宣武区| 甘谷县| 武隆县| 曲靖市| 康乐县| 黄冈市| 崇明县| 广汉市| 兴业县| 洮南市| 内丘县| 栖霞市| 利川市| 肇庆市| 海口市| 宝兴县|