飞书在线表-下载单元格里的附件教程
评论
收藏

飞书在线表-下载单元格里的附件教程

经验分享
苏木
2024-08-21 14:31·浏览量:2348
苏木
发布于 2024-08-21 14:312348浏览

1、问题

在做飞书在线表的自动化时,遇到了这么一个问题,如何下载某单元格里的附件呢(里面可能是pdf、xlsx等)

2、尝试

(1)使用现成的飞书指令【读取表格数据】,读取格式为“纯文本”,结果得到下面列表

       [{'id': 14, 'type': 'attachment'}]

(2)更改读取格式为“公式计算值”,得到另一个列表

[{'fileToken': 'FCcQblKvxougmPxBmkHcI9jTnAa', 'mimeType': 'application/pdf', 'size': 389984, 'text': '8-16 GYR2 523600583.pdf', 'type': 'attachment'}]

3、思考:既然获得了“fileToken”,那飞书是不是提供了相应的API接口来下载附件呢?

的确有,网址为:下载文件 - 服务端 API - 开发文档 - 飞书开放平台 (feishu.cn)

咦!那是不是获取user_access_token,再copy刚刚得到的file_token,最后复制下示例代码稍等改改,就能下载文件啦?


4、实操1

(1)获取file_token并传参

得到

提取出相应的信息,理论上仅需fileToken,也就是“FCcQblKvxougmPxBmkHcI9jTnAa”,但我这里为了后续的文件保存,把text的内容也先提取了出来。

另外,若该单元格含有多个附件,在读取公式计算值后得到一个列表,可以对列表进行循环以下载多个附件(即:附件为0~多个都可以被循环

(2)新建python模块,模块名:pdf_download,如下图:

只是为了测试,调用这里可注释

上面的result函数调用是为了用于测试,可注释掉


(3)效果如下图

(4)新问题

半小时后再去运行该应用时,发现没报错,但是下载不了了。回到飞书开放平台发现,原来是user_access_token过期了,能不能自动获取呢,每次手动获取毕竟比较麻烦。发现是可以的,自建应用获取 app_access_token - 服务端 API - 开发文档 - 飞书开放平台 (feishu.cn)

5、实操2

(1)新建python模块,模块名:token_get。用途:获取app_access_token

运行后会得到1个字典,app_access_token的value就是我们需要的

(2)替换刚才的user_access_token,每次运行自动获取一个access_token

完活!下载成功!

优化点:

(1)获取完一个app_access_token后,可以结合if或者try-catch,等pdf_download模块的返回值为False时说明当前app_access_token已过期,此时再调用token_get函数,重新获取一个


收藏1
全部评论1
最新
发布评论
评论