企微机器人的文件上传接口

分享  收藏
2 / 905

有人用过企微的文件上传接口吗?我的场景是需要传打印文件节点生成的 PDF 到企微里


12/11 更新:知道怎么改了,分享下代码...

三个 input:

  1. FileUrl:文件的地址,可以是明道云的附件,但需要提前用这个代码块来提取一下附件的 URL
  2. fileN:文件名,不包括扩展名
  3. keyId:企微的群聊机器人的 KeyID,就是 key=XXX 后面这段 XXX

我这里传的是 PDF 文件,如果是别的类型文件的话记得改 filename 和 contentType 的值

const FormData = require('form-data');

var data = await fetch(input.fileUrl).then(r => r.buffer()).then(buf => buf.toString('base64'));

var fileStream = Buffer.from(data, 'base64');

let formdata = new FormData();
formdata.append("file", fileStream, {
filename: input.fileN+".pdf",
contentType: 'application/pdf'
});

const response = await fetch("https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key="+input.keyId+"&type=file", {
body: formdata,
method: "POST",
headers: formdata.getHeaders()
});
const result = await response.json();

return result;