python 钉钉 消息推送 文件传输

摘要:
到此完成了钉钉推送文件小程序的设置,接下来准备需要的信息:1、chatid通过地址https://wsdebug.dingtalk.com/使用钉钉管理员的钉钉扫描二维码然后定位到v0.1.2复制首页的未认证服务商CorpId并替换其中的xxx,点击执行,此时钉钉会弹出弹出框,让选择群聊,点击需要推送文件的群聊,确定即可,如图返回了chatid。appkey=%s&appsecret=%s'%headers={'Content-Type':"application/x-www-form-urlencoded"}data={'appkey':appkey,'appsecret':appsecret}r=requests.requestaccess_token=r.json()["access_token"]printreturnaccess_tokendefgetMedia_id():access_token=getAccess_token()#拿到接口凭证#获取要推送文件的路径path=os.getcwd()file=os.path.join#path='./helloworld.txt'#文件地址url='https://oapi.dingtalk.com/media/upload?access_token='+access_tokenheader={'Content-Type':'application/json'}data={'access_token':access_token,'chatid':chatid,'msg':{'msgtype':'file','file':{'media_id':media_id}}}r=requests.requestprintif__name__=='__main__':SendFile()执行后,即可看到群里自动发送了文件如图。

1、消息推送

钉钉群添加机器人

方式一:钉钉 群设置添加

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

设置如下: 这里选择 自定义关键字 填写"消息推送" ,只有发送的消息包含了 这个关键字,才会推送这个消息

python 钉钉 消息推送 文件传输第1张

复制webhook,代码需要用到

defsend_massage(message):

    webhook = 'Your webhook'

    chatbot =DingtalkChatbot(webhook)
    chatbot.send_text(msg=message,is_at_all=False,is_auto_at=True,at_mobiles=['@人手机号'])


send_massage('消息推送:发送消息"')

如上如果send_massage 不含消息推送,则不会发送消息。

方式二:创建一个小程序应用:

    1. 登录钉钉开发者后台
      说明:只有管理员和子管理员可登录开发者后台。注册企业或个人

python 钉钉 消息推送 文件传输第2张

python 钉钉 消息推送 文件传输第3张

python 钉钉 消息推送 文件传输第4张

注册后登录首页如图

python 钉钉 消息推送 文件传输第5张

点击应用开发,创建应用,如图创建机器人

python 钉钉 消息推送 文件传输第6张

创建后点击上线,即可上线该机器人

python 钉钉 消息推送 文件传输第7张

最后手动在群里可以添加该机器人

python 钉钉 消息推送 文件传输第8张

在群里查看该机器人,即可看到该机器人 webhook

python 钉钉 消息推送 文件传输第9张

defsend_massage(message):

    webhook = 'Your webhook'

    chatbot =DingtalkChatbot(webhook)
    chatbot.send_text(msg=message,is_at_all=False,is_auto_at=True,at_mobiles=['@人手机号'])


send_massage('test:message"')

这里没有设置关键字,所以消息就都可以发送。

2、文件传输

钉钉群机器人推送消息类型只支持text,link,markdown等形式,并不支持文件和图片类媒体文件的推送,所以咱们这里就需要用到钉钉的API接口来实现了,进入钉钉开放平台:https://open-dev.dingtalk.com

首页如下,记到:Corpid,后续会用到

python 钉钉 消息推送 文件传输第10张

到应用开发,准备创建小程序

python 钉钉 消息推送 文件传输第11张

python 钉钉 消息推送 文件传输第12张

开发管理:添加服务器出口IP, 获取IP:http://myip.fireflysoft.net/ 注意:根据网络自动获取,网络不同,ip不同,切如果ip已经被占用,请变更网络

python 钉钉 消息推送 文件传输第13张

添加接口权限,添加企业会话权限,该权限可以推送文件到群聊,如果无此权限,则无法推送文件。

python 钉钉 消息推送 文件传输第14张

到此完成了钉钉 推送文件小程序的设置,接下来准备需要的信息:

1、chatid 通过地址https://wsdebug.dingtalk.com/

使用钉钉管理员的钉钉扫描二维码

python 钉钉 消息推送 文件传输第15张

然后 定位到 v0.1.2

复制首页的

未认证服务商
CorpId 并替换其中的xxx,点击执行,此时钉钉会弹出弹出框,让选择群聊,点击需要推送文件的群聊,确定即可,如图返回了chatid。

python 钉钉 消息推送 文件传输第16张

2、AppKeyAppSecret 获取

打开应用开发-> 查看对应的小程序,如图即可获取

python 钉钉 消息推送 文件传输第17张

最后直接上代码

importrequests
importjson


defgetAccess_token():
    appkey = '****'   #替换自己的key
    appsecret = '****'  #替换自己的secret
url = 'https://oapi.dingtalk.com/gettoken?appkey=%s&appsecret=%s' %(appkey, appsecret)

    headers ={
        'Content-Type': "application/x-www-form-urlencoded"}
    data = {'appkey': appkey,
            'appsecret': appsecret}
    r = requests.request('GET', url, data=data, headers=headers)
    access_token = r.json()["access_token"]

    print(access_token)
    returnaccess_token


defgetMedia_id():
    access_token = getAccess_token()  #拿到接口凭证
    #获取要推送文件的路径
    path =os.getcwd()
    file = os.path.join(path,'moudleCore.txt')
    #path = './helloworld.txt'  # 文件地址
    url = 'https://oapi.dingtalk.com/media/upload?access_token=%s&type=file' %access_token
    files = {'media': open(file, 'rb')}
    data = {'access_token': access_token,
            'type': 'file'}
    response = requests.post(url, files=files, data=data)
    json =response.json()
    print(json)
    return json["media_id"]


defSendFile():
    access_token =getAccess_token()
    media_id =getMedia_id()
    chatid = '*****' #替换自己的chatid
    #chatid = '******'  # 通过jsapi工具获取的群聊id
    url = 'https://oapi.dingtalk.com/chat/send?access_token=' +access_token
    header ={
        'Content-Type': 'application/json'}
    data = {'access_token': access_token,
            'chatid': chatid,
            'msg': {
                'msgtype': 'file',
                'file': {'media_id': media_id}
            }}
    r = requests.request('POST', url, data=json.dumps(data), headers=header)
    print(r.json())





if __name__ == '__main__':
    SendFile()

执行后,即可看到群里自动发送了文件如图。

python 钉钉 消息推送 文件传输第18张

免责声明:文章转载自《python 钉钉 消息推送 文件传输》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇支付宝回调局域网无法访问vmware虚拟机WEB服务器解决办法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

响应式微服务框架Flower——快速上手

快速上手 Flower框架的主要元素包括:Flower Service(服务)、Flower 流程和Flow容器。Service实现一个细粒度的服务功能,Service之间通过Message关联,前一个Service的返回值(Message),必须是后一个Service的输入参数(Message),Service按照业务逻辑编辑成一个Flow(流程),Fl...

Python基础之变量

扎扎实实地打好基础,练好基本功,我认为这是学好Python的“秘诀”。老子曾云:九层之台,起于垒土。本文主要以一些简单的小例子简述Python基础之变量相关内容,仅供学习分享使用,如有不足之处,还请指正。 什么是变量? 变量是指在程序执行过程中,值可以发生变化的量。与之对应的是常量,常量是指在程序执行过程中,值不可以发生变化的量。变量和常量都是为了获取和设...

拉仇恨!webhook + 企业微信给同事做了个代码提交监听工具

本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 最近接个任务,用webhook做了个代码提交监听功能,就是有人向远程仓库提交代码后,会在企业微信群内发送一条消息,类似 @XXX 在XXX时间,向XXX项目提交 XXXX 代码 这样的文案。 至于为啥要做这么个工具,没办...

在MDK中使用 printf 函数

microlib 提供了一个有限的 stdio 子系统,它仅支持未缓冲的 stdin、stdout 和 stderr。 这样,即可使用 printf() 来显示应用程序中的诊断消息。 要使用高级 I/O 函数,您必须提供自己实现的以下基本函数,以便与您自己的 I/O 设备配合使用。 fputc()  为所有输出函数实现此基本函数。 例如,fprintf(...

python 画广东省等压线图

最近开发时要实现一个业务逻辑: 调用中国气象数据网API接口获取广东省实时气象数据 根据数据,基于广东省地图渲染等压线图 最终效果图是这样的: 首先是获取实时气压数据,由于中国气象数据网每次只能获得30个站点的气象数据,而广东省共有86个气象站点,所以分成3批获取,存入数组。获取到的数据格式是[{Station_Id_C,Year,Mon,Day,Ho...

***微信 该连接无法访问问题解决办法

微信开发是提示: 该连接无法访问问题解决办法 解决: 1、第一个修改接口权限中的域名为你的业务服务器的域名 2、请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。 主要涉及的是 网页授权获取用户基本信息 http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.h...