dsite/utils/lark.py
Ching 973849540a feat(utils lark client): [A] add lark webhook client
[A] add lark webhook client

Signed-off-by: Ching <loooching@gmail.com>
2021-10-26 15:57:06 +08:00

38 lines
975 B
Python

# -*- coding: UTF-8 -*-
from dsite import settings
import utils
from utils import const
import hashlib
import base64
import hmac
import json
import requests
from django.utils.timezone import now
def gen_sign(timestamp, secret):
# 拼接timestamp和secret
string_to_sign = '{}\n{}'.format(timestamp, secret)
hmac_code = hmac.new(string_to_sign.encode("utf-8"), digestmod=hashlib.sha256).digest()
# 对结果进行base64处理
sign = base64.b64encode(hmac_code).decode('utf-8')
return sign
def request(content, msg_type=const.LARK_WEBHOOK_MSG_TYPE_TEXT):
""" content: {'text': 'xxxxx}
"""
timestamp = utils.timestamp_of(now())
data = {
"timestamp": timestamp,
"sign": gen_sign(timestamp, settings.LARK_WEBHOOK_SECRET),
"msg_type": msg_type,
"content": content}
resp = requests.post(settings.LARK_WEBHOOK_URL, data=json.dumps(data))
if resp.status_code == 200 and resp.json().get('StatusCode') == 0:
return True
return False