python最新官方消息_Python实现钉钉订阅消息功能

钉钉设置机器人

首先在钉钉设置钉钉机器人

群设置—> 智能群助手—>添加机器人—>自定义

2020011412490222.jpg

2020011412490223.jpg

添加完成,得到一个Webhook API地址

2020011412490224.jpg

Python脚本实现推送钉钉消息

钉钉官方给出了机器人接口的文档:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

但是该文档只实现了JAVA和PHP的示例。以下是python脚本的示例。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# -*- coding: utf-8 -*-

"""Created on Mon Jan 13 11:18:59 2020

python3

@author: 谢公子

"""

import json

import requests

def send_msg(url,data):

headers= {'Content-Type':'application/json;charset=utf-8'}

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

return r.text

if __name__== '__main__':

data= {

"msgtype":"text",

"text": {

"content":"hello,word!test"

},

}

url= 'https://oapi.dingtalk.com/robot/send?access_token=xx' #此处为钉钉机器人的webhook地址

print(send_msg(url,data))

2020011412490225.jpg

2020011412490226.jpg

如果要实现签名认证,如下

2020011412490227.jpg

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

# -*- coding: utf-8 -*-

"""

Created on Mon Jan 13 11:18:59 2020

python3

@author: mi

"""

import json

import requests

import time

import hmac

import hashlib

import base64

import urllib

from urllibimport parse

def send_msg(url,data):

headers= {'Content-Type':'application/json;charset=utf-8'}

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

return r.text

def auth(secret):

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

secret= secret#秘钥

secret_enc= bytes(secret.encode('utf-8'))

string_to_sign= '{}\n{}'.format(timestamp, secret)#把 timestamp+"\n"+密钥 当做签名字符串 string_to_sign

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

hmac_code= hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()#使用HmacSHA256算法计算签名,得到 hmac_code

hmac_code_base64=base64.b64encode(hmac_code)#将hmac_code进行Base64 encode

sign= urllib.parse.quote(hmac_code_base64)#进行urlEncode,得到最终的签名sign

authlist=[timestamp,sign]

return authlist

if __name__== '__main__':

data= {

"msgtype":"link",

"link": {

"text": "",

"title":"时代的火车向前开",

"messageUrl":"https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng"

}

}

authlist= auth("你的签名")

url= "https://oapi.dingtalk.com/robot/send?access_token=xxx"+"×tamp="+str(authlist[0])+"&sign="+authlist[1]

print(send_msg(url,data))

消息类型

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

text类型

{

"msgtype":"text",

"text": {

"content":"我就是我, 是不一样的烟火@156xxxx8827"

},

"at": {

"atMobiles": [

"156xxxx8827",

"189xxxx8325"

],

"isAtAll": false

}

}

2020011412490228.jpg

效果图如下

2020011412490229.jpg

?

1

2

3

4

5

6

7

8

9

10

11

link类型

{

"msgtype":"link",

"link": {

"text": "这个即将发布的新版本,创始人xx称它为“红树林”。

而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是“红树林”?",

"title":"时代的火车向前开",

"picUrl": "",

"messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng

}

}

2020011412490330.jpg

效果图如下

2020011412490331.jpg

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

markdown类型

{

"msgtype":"markdown",

"markdown": {

"title":"杭州天气",

"text":"#### 杭州天气 @156xxxx8827\n" +

"> 9度,西北风1级,空气良89,相对温度73%\n\n" +

"> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\n" +

"> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n"

},

"at": {

"atMobiles": [

"156xxxx8827",

"189xxxx8325"

],

"isAtAll": false

}

}

2020011412490332.jpg

效果图如下

2020011412490333.jpg

整体跳转ActionCard类型

?

1

2

3

4

5

6

7

8

9

10

11

12

13

{

"actionCard": {

"title":"乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身",

"text": "![screenshot](@lADOpwk3K80C0M0FoA)

### 乔布斯 20 年前想打造的苹果咖啡厅

Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到20 年前苹果一个建立咖啡馆的计划",

"hideAvatar":"0",

"btnOrientation":"0",

"singleTitle" :"阅读全文",

"singleURL" :"https://www.dingtalk.com/"

},

"msgtype":"actionCard"

}

2020011412490334.jpg

效果图如下

2020011412490335.jpg

独立跳转ActionCard类型

2020011412490336.jpg

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

{

"actionCard": {

"title":"乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身",

"text": "![screenshot](@lADOpwk3K80C0M0FoA)

### 乔布斯 20 年前想打造的苹果咖啡厅

Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到20 年前苹果一个建立咖啡馆的计划",

"hideAvatar":"0",

"btnOrientation":"0",

"btns": [

{

"title":"内容不错",

"actionURL":"https://www.dingtalk.com/"

},

{

"title":"不感兴趣",

"actionURL":"https://www.dingtalk.com/"

}

]

},

"msgtype":"actionCard"

}

效果图如下

2020011412490337.jpg

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

FeedCard类型

{

"feedCard": {

"links": [

{

"title":"时代的火车向前开",

"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",

"picURL":"https://www.dingtalk.com/"

},

{

"title":"时代的火车向前开2",

"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",

"picURL":"https://www.dingtalk.com/"

}

]

},

"msgtype":"feedCard"

}

2020011412490338.jpg

效果图如下

2020011412490339.jpg

总结

以上所述是小编给大家介绍的Python实现钉钉订阅消息功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

原文链接:https://blog.csdn.net/qq_36119192/article/details/103953347

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值