python&shell發送釘釘消息


python發送釘釘消息

import requests
import time
import hashlib
import hmac
import base64
import re


def SendMessageBySEC(message = ''):
    """
    機器人設置了加密簽名的訪問方式
    :param message:
    :return:
    """
    # secret:密鑰,機器人安全設置頁面,加簽一欄下面顯示的SEC開頭的字符串,例如:SECxxxxxxxx
    secret = 'SECxxxxxxxx'
    # access_token:創建完釘釘機器人之后會自動生成,例如:access_tokenxxxx
    access_token = 'access_tokenxxxx'
    # timestamp:當前時間戳,單位是毫秒,與請求調用時間誤差不能超過1小時
    timestamp = int(round(time.time() * 1000))

    # 加密,獲取sign和timestamp
    data = (str(timestamp) + '\n' + secret).encode('utf-8')
    secret = secret.encode('utf-8')
    signature = base64.b64encode(hmac.new(secret, data, digestmod=hashlib.sha256).digest())
    reg = re.compile(r"'(.*)'")
    signature = str(re.findall(reg,str(signature))[0])

    # 發送信息
    url = 'https://oapi.dingtalk.com/robot/send?access_token=%s&sign=%s&timestamp=%s' % (access_token,signature,timestamp)
    headers = {"Content-Type": "application/json ;charset=utf-8 "}
    try:
        response = requests.post(url, headers=headers, json=message, timeout=(3, 60))
        print(response)
        response_msg = str(response.status_code) + ' ' + str(response.content)
        print(response_msg)
    except Exception as error_msg:
        print('error_msg==='+str(error_msg))
        response_msg = error_msg

    return response_msg


def SendMessageByKeywords(message=''):
    """
    釘釘機器人設置了關鍵字的訪問方式
    :param message:
    :return:
    """
    # access_token:創建完釘釘機器人之后會自動生成,例如:access_tokenxxxx
    access_token = 'access_tokenxxxx'
    # 發送信息
    url = 'https://oapi.dingtalk.com/robot/send?access_token=%s' % access_token
    headers = {"Content-Type": "application/json ;charset=utf-8 "}
    try:
        response = requests.post(url, headers=headers, json=message, timeout=(3, 60))
        print(response)
        response_msg = str(response.status_code) + ' ' + str(response.content)
        print(response_msg)
    except Exception as error_msg:
        print('error_msg==='+str(error_msg))
        response_msg = error_msg

    return response_msg


if __name__ == "__main__":
    # msg = {"msgtype": "text", "text": {"content": "test msg"}, "at": {"isAtAll": False}}
    # SendMessageBySEC(msg)
    msg = {"msgtype": "text", "text": {"content": "keywords: test msg"}, "at": {"isAtAll": False}} # 將keywords替換為設置釘釘機器人人時設置的關鍵字
    SendMessageByKeywords(msg)

shell發送釘釘消息

釘釘機器人設置了關鍵字的發送方式

curl 'https://oapi.dingtalk.com/robot/send?access_token=access_tokenxxxx' -H 'Content-Type: application/json' -d '
{"msgtype": "text", 
  "text": {
      "content": "keywords: test msg "
   }
}'
# 將keywords替換為設置釘釘機器人人時設置的關鍵字


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM