创建机器人
- 下载叮叮PC版
- 点击头像—>设置—>机器人管理—>选择类型—>添加
官方文档:
https://developers.dingtalk.com/document/app/custom-robot-access?spm=ding_open_doc.document.0.0.626410af3tsH9x#topic-1914047
普通机器人发送消息
# coding=utf-8
# author:tyc
# creat_time: 2021/7/6 10:45
# description: 测试叮叮机器人(python3.6)
# 更多消息格式参考: https://developers.dingtalk.com/document/app/custom-robot-access?spm=ding_open_doc.document.0.0.626410af3tsH9x#section-e4x-4y8-9k0
import requests
import json
import time
import hmac
import hashlib
import base64
import urllib.parse
# 机器人采用第二种加密时
def get_secret_url(url, secret):
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 f'{url}×tamp={timestamp}&sign={sign}'
def send_ding_talk(webhook_url, headers, data):
resp = requests.post(url=webhook_url, headers=headers, data=data)
print(resp.json())
# 要发送的消息类型
text = {
"at": {
"atMobiles": [ # 被@人的手机号 非必须
"180xxxxxx"
],
"atUserIds": [ # 被@人的用户userid 非必须
"user123"
],
"isAtAll": False # 是否@所有人。
},
"text": {
"content": "测试" # 消息内容
},
"msgtype": "text" # 消息类型,此时固定为:text。
}
# messageUrl 点击消息跳转的URL 必须填写
link = {
"msgtype": "link",
"link": {
"text": "提醒:这个即将发布的新版本,创始人xx称它为红树林。而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是红树林",
"title": "时代的火车向前开",
"picUrl": "",
"messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI"
}
}
#
markdown = {
"msgtype": "markdown",
"markdown": {
"title": "成都天气",
"text": "#### 系统报警:成都天气 @150XXXXXXXX \n > 9度,西北风1级,空气良89,相对温度73%\n > ![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png)\n > ###### 10点20分发布 [天气](https://www.dingtalk.com) \n"
},
"at": {
"atMobiles": [
"150XXXXXXXX"
],
"atUserIds": [
"user123"
],
"isAtAll": False
}
}
if __name__ == '__main__':
# webhook_url与secret由叮叮提供
webhook_url = ''
headers = {
'Content-Type': 'application/json'
}
# 测试第一种加密通过特定词语发送
# send_ding_talk(webhook_url, headers=headers, data=json.dumps(text))
# send_ding_talk(webhook_url, headers=headers, data=json.dumps(link))
# send_ding_talk(webhook_url, headers=headers, data=json.dumps(markdown))
# 测试第二种加密
secret = ''
send_ding_talk(get_secret_url(webhook_url, secret), headers=headers, data=json.dumps(text))
代码提交gitlab机器人
1.创建gitlab机器人,获取webhook地址
2.登录gitlab,选中仓库—>setting—>输入webhook地址即可
3.push代码测试结果