Python实现钉钉订阅消息功能

钉钉设置机器人

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

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

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

Python脚本实现推送钉钉消息

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

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

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

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

# -*- 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 urllib import 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"+"&timestamp="+str(authlist[0])+"&sign="+authlist[1]
 print(send_msg(url,data))

消息类型

text类型
{
 "msgtype": "text",
 "text": {
  "content": "我就是我, 是不一样的烟火@156xxxx8827"
 },
 "at": {
  "atMobiles": [
   "156xxxx8827",
   "189xxxx8325"
  ],
  "isAtAll": false
 }
}

效果图如下

link类型
{
 "msgtype": "link",
 "link": {
  "text": "这个即将发布的新版本,创始人xx称它为“红树林”。
而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是“红树林”?",
  "title": "时代的火车向前开",
  "picUrl": "",
  "messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng
 }
}

效果图如下

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

效果图如下

整体跳转ActionCard类型

{
 "actionCard": {
  "title": "乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身",
  "text": "![screenshot](@lADOpwk3K80C0M0FoA)
 ### 乔布斯 20 年前想打造的苹果咖啡厅
 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划",
  "hideAvatar": "0",
  "btnOrientation": "0",
  "singleTitle" : "阅读全文",
  "singleURL" : "https://www.dingtalk.com/"
 },
 "msgtype": "actionCard"
}

效果图如下

独立跳转ActionCard类型

{
 "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"
}

效果图如下

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

效果图如下

总结

以上所述是小编给大家介绍的Python实现钉钉订阅消息功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Python制作钉钉加密/解密工具

    又是很久没有写技术博客了,盖因最近都在学习知识,也没有总结出什么值得分享的内容,所以一直停笔至今.最近的工作和钉钉的开发打上了交到,官方并没有提供任何Python的SDK,于是只能全部自己写.现在我将其中实现起来相对费时间的"加密/解密/签名"部分分享出来,希望能帮助到一些人. 加密/解密的具体机制,可以参考 官方文档 . 在你的项目中安装这个扩展,可以使用: pip install dingtalk_crypto 安装. 使用方法,可以参考下面的测试代码: # -*- coding:

  • Python实现从订阅源下载图片的方法

    本文实例讲述了Python实现从订阅源下载图片的方法.分享给大家供大家参考.具体如下: 这段代码是基于python 3.4实现的,和python2.X 比起来有了好多差别啊. 这是一个练习,数据源来自网易订阅.代码如下: 复制代码 代码如下: __author__ = 'Saint' import os import urllib.request import json from html.parser import HTMLParser # 从获取的网页内容筛选图片的内容 class MyHt

  • 使用python实现mqtt的发布和订阅

    需要安装的python库 使用python编写程序进行测试MQTT的发布和订阅功能.首先要安装:pip install paho-mqtt 测试发布(pub) 我的MQTT部署在阿里云的服务器上面,所以我在本机上编写了python程序进行测试. 然后在shell里面重新打开一个终端,订阅一个主题为"chat" mosquitto_sub -t chat 在本机上测试远程的MQTT的发布功能就是把自己作为一个发送信息的人,当自己发送信息的时候,所有订阅过该主题(topic)的对象都将收到

  • Python实现钉钉发送报警消息的方法

    钉钉开放平台传送门:https://open.dingtalk.com 我司使用钉钉作为内部通讯工具,基本上大家在电脑和手机上都开着,消息可以第一时间查看,报警消息的即时性要求比较高,所以适合用钉钉通知. 下面介绍如何用Python实现钉钉发送报警消息. 获取access token 要使用钉钉发送消息,首先需要获取access token,代码如下: def get_access_token(): url = 'https://oapi.dingtalk.com/gettoken?corpid

  • python 调用钉钉机器人的方法

    以text格式的消息为例:(只需修改content后的内容) Import json Import requests url='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxx' HEADERS={"Content-Type":"application/json;charset=utf-8"} String_textMsg={"msgtype":"text&

  • python3实现钉钉消息推送的方法示例

    背景 偶然发现一个python实现的按照农历/阴历推送消息提醒的程序,钉钉群消息推送.此处总结并对其可推送的消息做. DingtalkNotice 环境:python3.7 安装: pip install schedule #实现定时任务的模块 pip install DingtalkChatbot #python封装的各种消息的调用 pip install sxtwl #日历库 钉钉自定义机器人: 钉钉群机器人是一个高级扩展的功能,可以将第三方服务的信息聚合到钉钉群众,实现信息的自动化同步.1

  • Python实现钉钉订阅消息功能

    钉钉设置机器人 首先在钉钉设置钉钉机器人 群设置-> 智能群助手->添加机器人->自定义 添加完成,得到一个Webhook API地址 Python脚本实现推送钉钉消息 钉钉官方给出了机器人接口的文档:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 但是该文档只实现了JAVA和PHP的示例.以下是python脚本的示例. # -*- coding: utf-8 -*- """Created on Mo

  • Python 京东云无线宝消息推送功能

    配置文件 注释里面有写,懒得用配置文件了 代码 # 京东云无线路由宝推送 import requests import json import time import hmac import hashlib import base64 import urllib.parse from datetime import datetime # 发送钉钉消息 def sendinfo_ding(token,secret,data): dic=get_timestamp_and_sign_by_secre

  • Python编程之微信推送模板消息功能示例

    本文实例讲述了Python微信推送模板消息功能.分享给大家供大家参考,具体如下: 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 具体代码如下: #!/usr/bin/env python #-*- coding: utf-8 -*- import httplib import json import MySQLdb #从数据库中获取access_token access_token="&quo

  • 小程序新版订阅消息模板消息

    小程序订阅消息 功能介绍 消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验. 订阅消息推送位置:服务通知 订阅消息下发条件:用户自主订阅 订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面 使用说明 步骤1:获取模板 ID 在微信公众平台手动配置获取模板 ID: 登录 https://mp.weixin.qq.com获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用. 配置订阅消息在这里如下图所示 步骤2:获取下发权限 详见小

  • 钉钉群自定义机器人消息Python封装的实例

    一.钉钉群自定义机器人介绍 钉钉群机器人是钉钉群的一个高级扩展功能,然而使用起来却非常简单,只有注册一个钉钉账号即可,就可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合Github.Gitlab等源码管理服务,实现源码更新同步:通过聚合Trello.JIRA等项目协调服务,实现项目信息同步:同事,支持Webhook协议的自定义接入,支持更多可能性,例如:将运维报警提醒.自动化测试的结果报告提醒.工作.生活日程安排(上班打卡.下班吃饭.健身.读书.生日.纪念日-)等等的提

  • Python基于钉钉监控发送消息提醒的实现

    目录 一.使用前设置钉钉 二.安全设置 三.发送请求 四.完整代码 一.使用前设置钉钉 1.既然是使用钉钉消息提醒,那么第需要有钉钉. 2.第二步自定义机器人是群机器人,所以需要有个群. 3.添加机器人,点击头像>机器人管理>自定义机器人 4.给机器人取个名字>选择添加到哪个群组>选择适合自己的安全设置>完成 二.安全设置 1.有三种安全设置方式:自定义关键词.加签.IP地址. 2.自定义关键词:简单来说就是你发送的内容必须包含这个关键词,才能发送成功. 3.加签:就是生成你

  • Python实现钉钉/企业微信自动打卡的示例代码

    每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡. 1 前期工具准备 不用说的Python 一部24小时可以放公司的安卓手机或电脑安装模拟器 ADB工具 2 ADB的安装配置 去下载ADB安装包,安装后在环境变量Path中添加目录 2.1 UIautomator2的安装 # 安装 uiautomator2(PC端) pip3 install -U uiautomator2 3

  • Python实现的微信公众号群发图片与文本消息功能实例详解

    本文实例讲述了Python实现的微信公众号群发图片与文本消息功能.分享给大家供大家参考,具体如下: 在微信公众号开发中,使用api都要附加access_token内容.因此,首先需要获取access_token.如下: #获取微信access_token def get_token(): payload_access_token={ 'grant_type':'client_credential', 'appid':'xxxxxxxxxxxxx', 'secret':'xxxxxxxxxxxxx

随机推荐