钉钉常用的两种机器人开发

发布时间:2024-11-19 10:53

在墙上钉钉子,结果钉子穿过墙,成了两个孔 #生活乐趣# #日常生活趣事# #家居生活趣闻# #家居装修搞笑瞬间#

1. 很弱的机器人,只能向群里主动推送消息,没法根据用户的指令进行其他操作

核心代码如下:

import time

import hmac

import hashlib

import base64

import urllib.parse

def get_sign(secret="SEC9f46e354d4834add3b755f72d61f32e09c464115971344442e3497193bb2621e"):

timestamp = str(round(time.time() * 1000))

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))

return timestamp,sign

def sendinfo_ding(data):

timestamp,sign = get_sign()

url = 'https://oapi.dingtalk.com/robot/send?access_token=83c158e61b7b366257c7a68c05a7218b7a5dd9f24e62e407b535e3ebe5a20128X'

url = f"{url}&timestamp={timestamp}&sign={sign}"

program = {

"msgtype": "text",

"text": {"content": data},

}

headers = {'Content-Type': 'application/json'}

f = requests.post(url, data=json.dumps(program), headers=headers)

print(f.text)

if __name__ == '__main__':

sendinfo_ding('机器人测试!')

2.最好的机器人,企业内部机器人。可以主动推送消息,同上面那款机器人一样。更厉害的是支持用户交互。接受用户消息,然后执行对应的操作,需要企业才能添加。

核心代码如下(基于flask做的接口):

 utils.py文件:

import hmac

import hashlib

import base64

import time

def get_sign(app_secret = 'L52njkY-ekQa4BRp1JKHX_iVHHilOGG8s3_To0X-onjkFVUwyGf2yS2SBbhBscyB',timestamp=str(round(time.time()*1000))):

mtimestamp = str(round(time.time()*1000))

app_secret_enc = app_secret.encode('utf-8')

string_to_sign = '{}\n{}'.format(timestamp, app_secret)

string_to_sign_enc = string_to_sign.encode('utf-8')

hmac_code = hmac.new(app_secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()

sign = base64.b64encode(hmac_code).decode('utf-8')

return sign,mtimestamp

'

api.py文件:

from flask import Flask, request,render_template_string,Response

from flask_cors import CORS

from utils import get_sign

app = Flask(__name__)

CORS(app, resources=r'/*')

@app.route("/ding/test/",methods=["GET","POST"])

def ding_test():

headers = request.headers

sign = headers.get("sign")

timestamp = headers.get("timestamp")

if not sign or not timestamp:

return_dict = {'code': '205', 'msg': '错误的请求,缺少sign', 'result': False}

return json.dumps(return_dict, ensure_ascii=False)

mysign,mytime = get_sign(timestamp=timestamp)

if mysign!=sign or int(mytime) - int(timestamp) > 60*60000:

return_dict = {'code': '400', 'msg': '非法的请求', 'result': False}

return json.dumps(return_dict, ensure_ascii=False)

ret = {

"msgtype": "text",

"text": {

"content": "我就是我, @150XXXXXXXX 是不一样的烟火"

},

"at": {

"atMobiles": [

],

"isAtAll": False

}

}

data = request.get_data().decode("utf-8")

data_dict = json.loads(data)

content = data_dict['text']['content']

senderNick = data_dict["senderNick"]

try:

ret['text']['content'] = f"To:{senderNick}\n{eval(content)}"

except Exception as e:

ret['text']['content'] = f"你的输入有误:{content}\n{e}"

return_dict = ret

return json.dumps(return_dict, ensure_ascii=False)

if __name__ == "__main__":

app.run(host='0.0.0.0',port=8000)

网址:钉钉常用的两种机器人开发 https://www.yuejiaxmz.com/news/view/134533

相关内容

如何用钉钉管理项目团队
钉钉e人事合同代金券在哪里操作
钉钉酷盯用车优惠券在哪里看到的:让你省时省力省心省钱
钉钉e签宝: 科技改变生活, 签约更便捷
钉钉上线AI助理市场,200+AI助理覆盖办公、生活与娱乐场景
钉钉电脑版:高效沟通协作,随时随地把握工作进度
几款免钉收纳神器,从此告别墙面打洞!
免打孔挂钩强力无痕钉粘贴式螺丝厨房浴室防水胶粘免钉贴粘钩钉相框螺丝杆贴片挂件挂架 螺丝贴20个 15.9元(需用券)
免打孔挂钩强力无痕钉粘贴式螺丝厨房浴室防水胶粘免钉贴粘钩钉相框螺丝杆贴片挂件挂架 螺丝贴10个+相框贴10个 16.9元(需用券)
打造高效沟通团队必备:10款类似钉钉的优秀即时通讯软件推荐

随便看看