@钉钉机器人自动回复消息
生活随笔
收集整理的這篇文章主要介紹了
@钉钉机器人自动回复消息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@釘釘機器人自動回復消息
- 一.pc端釘釘創建一個企業
- 二.登錄釘釘開發者后臺,創建企業機器人
- 三.配置服務器安全組項(這里以阿里云服務器為例)
- 四.開啟一個web服務,用于接收和發送數據
- 五.配置開發者后臺開發管理
- 六.釘釘機器人管理與發布
一.pc端釘釘創建一個企業
二.登錄釘釘開發者后臺,創建企業機器人
開發者后臺
登錄「釘釘開發者后臺」,選擇「應用開發」——「企業內部開發」—— 「機器人」
三.配置服務器安全組項(這里以阿里云服務器為例)
配置釘釘機器人post數據的接口,即web運行開放的端口,
設置相應的ip白名單(可以設置當前pc端所在機器出口ip)
四.開啟一個web服務,用于接收和發送數據
# -*- coding: utf-8 -*- # @Time : 2023/2/15 11:25 # @Author : Cocktail_pyimport time import hmac import hashlib import base64 import json import logging from datetime import datetimefrom flask import Flask, request from dingtalkchatbot.chatbot import DingtalkChatbot from traceback import format_excapp = Flask(__name__)# 機器人密鑰 APP_SECRET = '4ugAwbOkbP-w0-3KpJ6RDQqoWNeUS2************H' # 機器人URL WEBHOOK = "https://oapi.dingtalk.com/robot/send?access_token=cb10814658af115926887e6c9e12d4ae0bb14129******"# 釘釘發送消息 class DingDingBot(object):# WebHook地址webhook = WEBHOOKdef __init__(self):# 初始化機器人小丁DingDingBotself.xiaoding = DingtalkChatbot(self.webhook)# Text消息@所有人def send_message(self, msg):cnt = 0while cnt < 3:try:self.xiaoding.send_text(msg='{}'.format(msg), is_at_all=False)breakexcept:logging.error(format_exc())cnt += 1def sha256_base64(timestamp=int(time.time() * 1000), app_secret=APP_SECRET):"""釘釘消息頭部加密:param timestamp: 時間戳:param app_secret: 釘釘機器人后臺AppSecret,如:4ugAwbOkbP-w0-3KpJ6RDQqoWNeUS2************H:return:"""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# 接收@機器人的消息 @app.route('/', methods=["POST"]) def index():if request.method == "POST":timestamp = request.headers.get('Timestamp')sign = request.headers.get('Sign')if sha256_base64(timestamp=timestamp) == sign:req_data = json.loads(str(request.data, 'utf-8'))senderNick = req_data.get('senderNick')text = req_data.get('text').get('content', "").strip()logging.info(text)DingDingBot().send_message("[%s]\n執行人:%s\n執行內容:%s" % (datetime.now().strftime('%Y-%m-%d %H:%M:%S'), senderNick, text))return "succeed"else:return "not found"else:return "method not found"if __name__ == '__main__':app.run(host='0.0.0.0', port=8083)五.配置開發者后臺開發管理
注意:這里必須先執行步驟四才能配置成功
六.釘釘機器人管理與發布
為了方便開發和測試,機器人正式發布前,我們可以先在釘釘機器人開發管理后臺點擊版本管理與調試->調試,系統會自動幫我們創建一個調試群。
參考:
釘釘接收消息官方文檔
如何打造一個能自動回復的釘釘機器人
從 0 到 1 使用 Python 開發一個釘釘群應答機器人
總結
以上是生活随笔為你收集整理的@钉钉机器人自动回复消息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新gre考试:一战326经验分享
- 下一篇: python3 链表_Python3链表