feat(utils lark client): [A] add lark webhook client
[A] add lark webhook client Signed-off-by: Ching <loooching@gmail.com>
This commit is contained in:
parent
0228221b91
commit
973849540a
@ -1,45 +0,0 @@
|
||||
from .settings_default import *
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
|
||||
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
|
||||
# CORS_ALLOW_ALL_ORIGINS = True # If this is used then `CORS_ALLOWED_ORIGINS` will not have any effect
|
||||
CORS_ALLOWED_ORIGINS = [
|
||||
'http://localhost:8080',
|
||||
'http://127.0.0.1:8080',
|
||||
'http://192.168.1.101:8080'
|
||||
]
|
||||
|
||||
CORS_ALLOW_METHODS = [
|
||||
"DELETE",
|
||||
"GET",
|
||||
"OPTIONS",
|
||||
"PATCH",
|
||||
"POST",
|
||||
"PUT",
|
||||
]
|
||||
|
||||
CORS_ALLOW_HEADERS = [
|
||||
"accept",
|
||||
"accept-encoding",
|
||||
"authorization",
|
||||
"content-type",
|
||||
"dnt",
|
||||
"origin",
|
||||
"user-agent",
|
||||
"x-csrftoken",
|
||||
"x-requested-with",
|
||||
]
|
||||
|
||||
CORS_ALLOW_HEADERS = ('*')
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
|
||||
|
||||
STATICFILES_DIRS = [
|
||||
os.path.join(BASE_DIR, "frontend/dist/"),
|
||||
]
|
||||
|
||||
MEDIA_URL = '/media/'
|
||||
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
|
||||
@ -155,3 +155,7 @@ REST_FRAMEWORK = {
|
||||
CORS_ALLOWED_ORIGINS = []
|
||||
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
|
||||
# CORS_ALLOW_ALL_ORIGINS = False # If this is used then `CORS_ALLOWED_ORIGINS` will not have any effect
|
||||
|
||||
|
||||
LARK_WEBHOOK_URL = ''
|
||||
LARK_WEBHOOK_SECRET = ''
|
||||
|
||||
@ -19,3 +19,6 @@ RECIPE_TYPE_CHOICE = [
|
||||
|
||||
FILTER_EXACT = ['exact']
|
||||
FILTER_GTE_LTE = ['exact', 'gte', 'gt', 'lte', 'lt']
|
||||
|
||||
|
||||
LARK_WEBHOOK_MSG_TYPE_TEXT = 'text'
|
||||
|
||||
37
utils/lark.py
Normal file
37
utils/lark.py
Normal file
@ -0,0 +1,37 @@
|
||||
# -*- 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
|
||||
Loading…
x
Reference in New Issue
Block a user