Maison  >  Article  >  développement back-end  >  Apprenez Python à utiliser l'exemple de code du robot DingTalk personnalisé

Apprenez Python à utiliser l'exemple de code du robot DingTalk personnalisé

coldplay.xixi
coldplay.xixiavant
2020-08-13 17:12:342862parcourir

Apprenez Python à utiliser l'exemple de code du robot DingTalk personnalisé

1. Ajouter un robot personnalisé

Recommandations d'apprentissage associées : Tutoriel vidéo Python

2. Écriture Le code python demande le webhook donné par le robot DingTalk

Document officiel du robot personnalisé DingTalk

Utilisez la méthode de signature de manière sécurisée :

La première étape consiste à utiliser l'horodatage+"n"+clé comme chaîne de signature, à utiliser l'algorithme HmacSHA256 pour calculer la signature, puis à effectuer un encodage Base64. Enfin, urlEncodez les paramètres de signature pour obtenir la signature finale (. vous devez utiliser le jeu de caractères UTF -8).

参数

说明

timestamp

当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时

secret

密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串

Paramètres

Description

参数

说明

timestamp

第一步使用到的时间戳

sign

第一步得到的签名值

horodatage

L'horodatage actuel, en millisecondes, ne peut pas dépasser 1 heure à compter de l'heure de l'appel de la demande

secret

Clé, page des paramètres de sécurité du robot, la chaîne commençant par SEC affichée sous la colonne de signature
import requests
 
 
#python 3.8
import time
import hmac
import hashlib
import base64
import urllib.parse
 
timestamp = str(round(time.time() * 1000))
secret = '加签时生成的密钥'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
print(timestamp)
print(sign)

La deuxième étape consiste à fusionner l'horodatage et la valeur de signature obtenue lors de la première étape dans l'URL.

Paramètres

Description
horodatage L'horodatage utilisé dans la première étape
signe La valeur de signature obtenue lors de la première étape
La troisième étape, Envoyer la demande
url='生成的Webhook&timestamp={}&sign={}'.format(timestamp, sign)
 
 
print (url)
headers={
 'Content-Type':'application/json'
}
json={"msgtype": "text",
 "text": {
  "content": "888"
 } }
resp=requests.post(url=url,headers=headers,json=json)
print (resp.text)
Résultat : Code global :
import requests
 
 
#python 3.8
import time
import hmac
import hashlib
import base64
import urllib.parse
 
timestamp = str(round(time.time() * 1000))
secret = '加签时生成的密钥'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
print(timestamp)
print(sign)
 
 
url='生成的Webhook×tamp={}&sign={}'.format(timestamp, sign)
 
 
print (url)
headers={
 'Content-Type':'application/json'
}
json={"msgtype": "text",
 "text": {
  "content": "测试"
 } }
resp=requests.post(url=url,headers=headers,json=json)
print (resp.text)
Recommandations d'apprentissage associées : Vidéo de programmation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer