我正在努力使用 webmethod.IO 工作流程将 CSV 文件发送到 Smartsheet 附件。看来我错过了一些东西。谁能分享一下邮递员的收藏吗?
文件:C:emp\master.csv
HTTP POST:https://api.smartsheet.com/2.0/sheets/{SheetID}/attachments
我尝试设置文件名和路径。看起来它需要传递内存流和文件的大小。我的 CSV 文件很小,只有 20 kb。
我从未使用过 webmethods.io,但根据他们的 文档,它支持的唯一 添加附件 操作似乎是 将文件附加到 行。
使用 Smartsheet API 将文件附加到行的操作是:
POST https://api.smartsheet.com/2.0/sheets/sheetId/rows/rowId/attachments
在此端点中,将
sheetId
替换为工作表的 ID,并将 rowId
替换为行的 ID。您可以使用 Smartsheet Web 应用程序确定这两个值。
Properties
菜单中选择 File
。Properties
。您需要为此请求设置 4 个 HTTPS 标头:
Authorization: Bearer YOUR_ACCESS_TOKEN HERE
Content-Type: text/csv
Content-Disposition: attachment; filename="master.csv"
Content-Length: NUMBER_OF_CHARACTERS_IN_YOUR_CSV_FILE_HERE
在这些标头中,您需要将
YOUR_ACCESS_TOKEN HERE
替换为 API 访问令牌的值,并将 NUMBER_OF_CHARACTERS_IN_YOUR_CSV_FILE_HERE
替换为表示 csv 文件中字符数(包括所有逗号)的数值。
例如,以下是我在 Postman 中测试操作时设置的标头:
我的 csv 文件的内容很简单:
this,is,a,test
——长度为 14 个字符(我的请求中 Content-Length
标头的值)。
最后,您将请求的正文设置为文件的内容(二进制格式)。当我在 Postman 中测试此操作时,我能够为正文选择
binary
格式,然后只需通过 UI 选择我的文件 - 这样我就不必手动将文件内容转换为二进制格式 - Postman为我做的。
在 Postman 中,我按下上面屏幕截图中显示的
Select file
按钮,然后从我的机器中选择要上传的文件:
我想 webmethods.io 是一样的——也就是说,我猜你可以通过 webmethods.io 用户界面选择/上传文件。
总而言之,如果 webmethods.io 文档已过时,并且它确实实际上支持将文件附加到Sheet操作,那么一切都会与我上面描述的相同,除了会有现在
rowId
位于端点的末尾:
https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments