如何解决通过 Zapier CLI 应用将文件发布到 Monday.com API
我总是难以发布文件。
我的请求在 Postman 中运行良好。这是有效的 CURL:
curl --request POST \
--url https://api.monday.com/v2/file \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
--form 'query=mutation ($file:File!){
add_file_to_column(item_id:1192060603,column_id:"files3",file:$file){
id
}
}' \
--form 'variables={}' \
--form 'map={"image":"variables.file"}' \
--form 'image=@C:\Users\davec\Downloads\foto1.jpg'
然而,试图在我的 Zapier 应用程序中实现相同的结果是行不通的。这是我目前的方法:
const fileResponse = await fetch(bundle.inputData.file).then((res) =>
res.blob()
);
const queryString = `mutation ($file:File!){
add_file_to_column(item_id:${bundle.inputData.item_id},column_id:"${bundle.inputData.column_id}",file:$file){
id
}
}`;
const map = {
image: "variables.file",};
const payload = new FormData();
payload.append("query",queryString);
payload.append("variables","{}");
payload.append("map",JSON.stringify(map));
payload.append("image",fileResponse.stream(),bundle.inputData.file_name);
const response = z
.request("https://api.monday.com/v2/file",{
method: "POST","Content-Type": "multipart/form-data; boundary=" + payload.getBoundary(),body: payload,})
.then((res) => res.json);
return response;
bundle.inputData.file
是一个 Zapier 网址,用于下载我要发送的文件。不需要身份验证。如果我将 url 粘贴到隐身 chrome 窗口中,它会立即下载。
如果我删除 payload.append("image",bundle.inputData.file_name);
行,会得到与从 Postman 删除文件相同的错误。这让我觉得一切都很好,除了我将文件附加到 FormData 对象的方式。
我从 Monday.com 得到的错误是:
{"error_message":"Unsupported query","status_code":400}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。