>  기사  >  백엔드 개발  >  맞춤형 DingTalk 로봇의 샘플 코드를 사용하기 위해 Python을 배우십시오.

맞춤형 DingTalk 로봇의 샘플 코드를 사용하기 위해 Python을 배우십시오.

coldplay.xixi
coldplay.xixi앞으로
2020-08-13 17:12:342855검색

맞춤형 DingTalk 로봇의 샘플 코드를 사용하기 위해 Python을 배우십시오.

1. 맞춤형 로봇 추가

관련 학습 권장 사항: python 비디오 튜토리얼

2. DingTalk 로봇을 요청하는 Python 코드 작성 주어진 웹훅

DingTalk 맞춤형 로봇 공식 문서

보안 방법은 서명 방법을 사용합니다.

첫 번째 단계는 타임스탬프+"n"+키를 서명 문자열로 사용하고 HmacSHA256 알고리즘을 사용하여 계산하는 것입니다. , Base64 인코딩, 마지막으로 서명 매개변수를 urlEncode하여 최종 서명을 얻습니다(UTF-8 문자 집합을 사용해야 함).

Parameters

설명

timestamp

현재 타임스탬프(밀리초)는 요청 호출 시간으로부터 1시간을 초과할 수 없습니다

비밀

Key, 로봇 보안 설정 페이지, 서명 열 아래에 SEC로 시작하는 문자열이 표시됩니다

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에 연결하는 것입니다.

Parameters

설명

timestamp

첫 번째 단계에서 사용된 타임스탬프

sign

첫 번째 단계에서 얻은 시그니처 값


세 번째 단계, 요청 보내기

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)

결과:

전체 코드:

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)

관련 학습 권장 사항: 프로그래밍 비디오

위 내용은 맞춤형 DingTalk 로봇의 샘플 코드를 사용하기 위해 Python을 배우십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제