飞书上传文件方案分享(利用cURL)
官方目前没有现成的飞书上传插件,http插件也不支持文件上传。采用这种方案可以实现文件上传获取file_key,用于发消息等功能。思路来源于帖子https://gcdn.grapecity.com.cn/showtopic-163240-1-1.html的回复。
对实际操作细节的进一步完善补充。
主要使用工具:发送HTTP请求命令,设置变量命令,cURL, 文件操作:保存内容到文件,程序调用命令,文件转base64,base64加密解密命令,json返序列化(选用)
cURL下载链接https://curl.se/windows/
使用版本
下载后要配置好系统环境变量,以便于运行curl命令。可参考帖子https://blog.csdn.net/michaelwoshi/article/details/115386889
飞书开放平台cURL示例代码:
window环境下要修改一下,文件名等的双引号(")去除,单引号(')改为双引号("),修改后命令如下:
curl --location --request POST "https://open.feishu.cn/open-apis/im/v1/files" --header "Authorization: Bearer t-39eec8560faa3dded7971873eb649fd40e70e0f1" --form "file_type=mp4" --form "file_name=测试视频.mp4" --form "duration=3000" --form "file=@/path/测试视频.mp4" >D:\api_return_code.txt
A.file_type属性根据网站说明写,有如下选项:opus,mp4,pdf,doc,xls,ppt,stream.
B.duration仅音频和视频填写,其它的file_type删除该选项。
C.末尾的 >D:\api_return_code.txt 用于保存返回信息(可根据个人需求写保存位置)
注意事项:针对cURL命令中有中文时需做如下调整!
A.cURL命令中如果有中文会导致执行bat文件乱码无法执行,需要设置注册表
路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
autorun 数值 chcp 65001(没有新建字符串值)
B.window设置区域设置,不设置如果用飞书API发消息会无法显示
下面是具体操作流程:
1.发送HTTP请求命令,调用API获取 tenant_access_token 拼接头文件需要加前缀Bearer
2.通过字符串拼接的方式拼接出来cURL命令;
3.使用"保存内容到文件"将命令保存到本地的bat文件内(新内容会覆盖旧命令,无需清空);
4.程序调用命令调用bat文件(返回信息保存在文件→ D:\api_return_code.txt);
5.文件转base64 配和base64解码读取文件内容(api_return_code.txt)新内容会覆盖旧命令,无需清空;
6.json返序列化快速获取file_key的值,用于其它API的使用。(也可以用对象操作命令去获取,略微麻烦一点)
通过上述方法可实现上传文件功能
注:理论上改思路可以应用在所有支持cURL的API。有点曲折麻烦了一点,但对代码要求不高。
催:等官方一个插件,等官方一个插件,等官方一个插件,等官方一个插件
谢谢分享
页:
[1]