我一直在使用这个星期一的API,并且在使它在我们的系统和我们使用的其他一些工具中可用方面取得了很大的进步,然而,当涉及到添加文件时,我遇到了一些障碍。我可以做其他的事情,从添加项目,更新,列,板和阅读我所需要的,但添加文件是什么,最终使我崩溃。我的代码是基于上传一个文件到monday.com,很难的方法的。作者正在使用NodeJS,所以我已经尽我所能地去转换它。我的代码如下:
<cfset dataQuery = 'mutation ($file:File!) {add_file_to_column (item_id: 123456789, column_ID: file, file: $file){id}}'>
<cfset boundary = "xxxxxxxxxx">
<cfset upfile = "image1.png">
<cfset base64Sample = SAMPLE_BASE64_STRING>
<cfset data = "">
<!--- Construct Query --->
<cfset data &= "--" & boundary & "#chr(13)##chr(10)#">
<cfset data &= 'Content-Disposition: form-data; name="query"#chr(13)##chr(10)##chr(13)##chr(10)#'>
<cfset data &= dataQuery & '#chr(13)##chr(10)#'>
<cfset data &= "--" & boundary & "#chr(13)##chr(10)#">
<!--- Construct File --->
<cfset data &= 'Content-Disposition: form-data; name="variables[file]"; filename="' & upfile & '";#chr(13)##chr(10)#'>
<cfset data &= "Content-Type:application/octet-stream;#chr(13)##chr(10)##chr(13)##chr(10)#">
<cfset data &= ToString(ToBinary(base64Sample))>
<cfset data &= "#chr(13)##chr(10)#--" & boundary & "--#chr(13)##chr(10)#">
<cfdump var="#data#">
<cfhttp method="post" url="https://api.monday.com/v2" result="result">
<cfhttpparam type="Header" name="Content-Type" value="multipart/form-data; boundary=#boundary#">
<cfhttpparam type="Header" name="Authorization" value="#mondayLogin.Token#">
<cfhttpparam type="body" value="#data#">
</cfhttp>当我试图让它工作时,格式化发生了一些变化,但是无论我做什么,它总是给我相同的错误消息:“没有查询字符串存在”。
我希望这里的人,谁有更多的知识,做多部分边界和周一API可以有所帮助。
编辑:我将\r\n更改为chr(13)chr(10),并且仍然得到相同的错误。
编辑2:在对它进行更多的重构之后,我似乎已经克服了第一个错误,现在我又碰到了两个与GraphQL相关的新错误。
编辑3:原来我的列名是错的。'ID‘不应该是大写的,而应该是'column_id’。我现在得到了另一个新的错误:内部服务器错误(500)
发布于 2022-03-28 16:34:01
因此,我在这方面遇到了很多不同的错误信息。基本上我有三个问题:
\r\n替换为正确的ColdFusion值chr(13)chr(10)<cfset dataQuery = "mutation ($file:File!) {add_file_to_column (item_id: 123456789, column_id: files, file: $file){id}}">
<cfset boundary = "xxxxxxxxxx">
<cfset upfile = "image1.png">
<cfset base64Sample = "SAMPLE_BASE64_IMAGE">
<cfset data = "">
<cfset cflf = "#chr(13)##chr(10)#">
<!--- Construct Query --->
<cfset data &= "--" & boundary & "#cflf#">
<cfset data &= 'Content-Disposition: form-data; name="query"#cflf##cflf#'>
<cfset data &= dataQuery & '#cflf#'>
<cfset data &= "--" & boundary & "#cflf#">
<!--- Construct File --->
<cfset data &= "Content-Disposition: form-data; name=""variables[file]""; filename=""#upfile#"";#cflf#">
<cfset data &= "Content-Type:application/octet-stream;#cflf##cflf#">
<cfset data &= ToString(ToBinary(base64Sample))>
<cfset data &= "#cflf#" &"--" & boundary & "--">
<cfdump var="#data#">
<cfhttp method="post" url="https://api.monday.com/v2/file" result="result">
<cfhttpparam type="Header" name="Content-Type" value="multipart/form-data; boundary=#boundary#">
<cfhttpparam type="Header" name="Authorization" value="API_KEY_HERE">
<cfhttpparam type="body" value="#data#">
</cfhttp>
<cfset returnStruct = DeserializeJSON(result.filecontent)>
<cfdump var="#returnStruct#">https://stackoverflow.com/questions/71641641
复制相似问题