【发布时间】:2020-09-10 13:37:46
【问题描述】:
我是新来的。
我正在尝试使用 put 请求来上传图像,我想使用 google 表格和 google 应用程序脚本来执行此操作。我可以将图像从 url 添加到工作表,但不能添加到 api,因为它只接受 .png/.jpeg 格式,我认为目前它采用 blob 格式。不确定。
任何人都可以帮助我如何使用谷歌应用脚本和工作表将图像发送到 api。
当我在参数中键入图像作为键(文件类型)然后从设备上传图像时,我能够使用邮递员获得成功响应。
这是我用来实现上述目的的一些代码:
function insertImageOnSpreadsheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var response = UrlFetchApp.fetch('Enter URL Here');
var binaryData = response.getContent();
// Insert the image in cell A1.
var blob1 = Utilities.newBlob(binaryData, 'image/png', 'MyImageName');
Logger.log(blob1)
var apiHeaders =
{
"Content-Type":"application/json",
"Authorization":"Enter Token here"
}
var formData= '{"image": "'+blob1+'"}'
var eventApiResponse = callApi('Enter API Here',"put",formData,apiHeaders,"insertImageOnSpreadsheet");
Logger.log(eventApiResponse)
sheet.insertImage(blob1, 1, 3);
}
function callApi(targetURL, method, formData, headers,functionName) {
var options = {
"method": method,
"payload":formData,
"headers":headers}
var response = UrlFetchApp.fetch(targetURL, options);
return response;
}
API: livestream.com/developers/docs/api/#update-event-logo-poster
有人请帮忙
【问题讨论】:
-
为了正确了解您目前的情况,能否提供您要使用的API的规范和当前的错误信息?
-
API 说文件类型不受支持。所以我假设我的代码正在发送 blob。 API 接受图片密钥中的 png 文件
-
感谢您的回复。例如,当您将文件作为字节数组而不是 blob 发送时,您会得到什么结果?就像
var formData = Utilities.newBlob(binaryData, 'image/png', 'MyImageName').getBytes()或var formData = JSON.stringify({image: Utilities.newBlob(binaryData, 'image/png', 'MyImageName').getBytes()})。如果这些不是直接的解决方案,我深表歉意。 -
虽然我还不能理解你要使用的API的规范,比如
The API says unsupported file type,base64怎么样? -
API 将只接受 png 和 jpeg 格式的图像,不接受其他文件格式或 base64 或 blob 等格式。错误 - {"code":415,"message":"HTTP 415 Unsupported Media Type"}
标签: javascript google-apps-script google-sheets