【办公自动化】Python自动向钉钉群组发送文件

场景:定期将号码标记信息以文件形式返回给不同的供应商群组。那么,对于本地文件(图片或excel、csv等),如何实现自动发送到特定群组?本文将通过Python+钉钉小程序实现该功能。

目录

1.创建钉钉小程序并配置相关权限参数

1.1 创建小程序

1.2 权限/参数配置

2.获取指定群聊的chatid

 3.编写Python脚本

1.创建钉钉小程序并配置相关权限参数

1.1 创建小程序

一般于公司而言,需要先获取钉钉后台开发的sit环境权限,小程序开发测试完成后,同步到生产环境(专员)操作,并开通相关权限。

登录钉钉开放平台:钉钉开放平台

小程序创建步骤:应用开发-->企业内部开发-->创建应用-->小程序

创建完成后进入小程序,配置相关权限/参数。

1.2 权限/参数配置

主要配置开发管理和权限管理。这一步走了很多坑,好多文档并没有讲清楚

(1)开发管理:配置服务器出口IP(即白名单)。

有两种方式获取本地IP:

        1)命令行输入:

curl ifconfig.me

        2)打开网页即可看到

http://myip.fireflysoft.net/

(2) 权限管理

需要配置的几个权限如下:

  

2.获取指定群聊的chatid

chatid就是群聊(群组)的唯一标识,是不会变化的,要向特定群聊发文件,必须有chatid。

chaidid的获取从这个官方连接调:

API Explorer

 步骤:填写corpid(填写你自己的),其他默认false

corpid在后台首页信息可以看到:  

点击发起调用-->扫描二维码选择相应群聊-->发起调用,即可获得chatid 

注:第一次发起调用并扫描二维码后,手机端会弹出“扫码授权提示”,点击确定即可;

​​​​​​​

 3.编写Python脚本

Appkey/Appsecret 在小程序应用信息里可以看到,chatid在步骤2中已详细说明。

完整代码如下,填写对应的信息即可: 

import requests
import json

# 1.获取接口凭证
def getAccess_token():
    # 从小程序应用信息处获取
    appkey = 'dinge**'  
    appsecret = 'e-ters2bAFUfLn_**' 

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

    return access_token

# 2.获取Midia_id
def getMedia_id():
    access_token = getAccess_token()  
    # 本地文件的绝对路径
    path = r'C:\Users\**'

    url = r'https://oapi.dingtalk.com/media/upload?access_token=%s&type=file' % access_token
    files = {'media': open(path, 'rb')}
    data = {'access_token': access_token,
            'type': 'file'}
    response = requests.post(url, files=files, data=data)
    json = response.json()
    return json["media_id"]

# 3.文件发送
def SendFile():
    access_token = getAccess_token()
    media_id = getMedia_id()
    # 获取群聊Id
    chatid = 'chat1ee**' 
    
    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())

SendFile()

 要向多个群组发文件,写个循环即可。需要代码的私聊。

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
办公自动化是指利用计算机技术,通过程序的编写和运行,实现办公任务的自动化处理。Python是一种通用的高级编程语言,以其简洁、易读、易学以及强大的功能在办公自动化领域得到了广泛应用。 在办公自动化中,Python可以通过使用相应的库和模块来实现程序文件的下载功能。其中,常用的库包括urllib、requests等。 首先,我们可以使用urllib库来实现文件的下载。具体步骤如下: 1. 导入urllib库。 2. 使用urllib库的urllib.request.urlretrieve()函数,将要下载的文件的链接作为参数,指定下载后的文件名及路径。 3. 执行程序,即可自动下载文件。 例如,以下是一个使用urllib库实现文件下载的简单示例代码: ```python import urllib.request url = "http://example.com/example.docx" # 要下载的文件的链接 filename = "example.docx" # 下载后的文件名及路径 urllib.request.urlretrieve(url, filename) # 执行文件下载 ``` 此外,我们也可以使用requests库来实现文件的下载。具体步骤如下: 1. 导入requests库。 2. 使用requests库的get方法,将要下载的文件的链接作为参数,发送HTTP请求。 3. 将服务器响应中的文件内容写入到本地文件中。 以下是一个使用requests库实现文件下载的简单示例代码: ```python import requests url = "http://example.com/example.docx" # 要下载的文件的链接 filename = "example.docx" # 下载后的文件名及路径 response = requests.get(url) # 发送HTTP请求 with open(filename, "wb") as file: file.write(response.content) # 将文件内容写入本地文件中 ``` 综上所述,通过使用Python中的urllib或requests库,我们可以方便地实现办公自动化程序文件的下载功能。无论是urllib还是requests,都提供了简单易用的接口,使得下载文件变得简单且高效。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值