Google apps script gmail附加组件多部分/表单数据应用程序脚本

Google apps script gmail附加组件多部分/表单数据应用程序脚本,google-apps-script,urlfetch,gmail-addons,Google Apps Script,Urlfetch,Gmail Addons,我正在构建一个gmail附加应用程序来读取当前电子邮件并检索与该电子邮件相关的gmail附件。 一旦我得到了附件的blob,我就尝试通过多部分/表单数据post请求将其上传到我的API。目前,我的请求失败了,只有500美元,而我的邮递员请求工作正常 我的后端出现以下异常: 调用的目标已引发异常。在HttpRequest.GetBufferedInputStream的调用者填充内部存储之前,访问了BinaryRead、Form、Files或InputStream。 和邮递员在一起,我没有任何错误

我正在构建一个gmail附加应用程序来读取当前电子邮件并检索与该电子邮件相关的gmail附件。 一旦我得到了附件的blob,我就尝试通过多部分/表单数据post请求将其上传到我的API。目前,我的请求失败了,只有500美元,而我的邮递员请求工作正常

我的后端出现以下异常: 调用的目标已引发异常。在HttpRequest.GetBufferedInputStream的调用者填充内部存储之前,访问了BinaryRead、Form、Files或InputStream。

和邮递员在一起,我没有任何错误

不确定当前是否正在应用程序脚本中创建请求。这是我的密码

    var blob = 
     Utilities.newBlob(parsedBlob,payload.contentType,payload.name);
    Logger.log('encode url ' + encodedUrl)
    var metadata = {
        'account_ref.id': payload.metaData.account_ref.id,
        'matter_ref.id': payload.metaData.matter_ref.id,
         description: "uploaded from gmail add on.",
         content_type: payload.contentType,
         file_name: 'test.png',
         size: JSON.parse(payload.size).toString(),
    };

    for (var i in metadata) {
        data += "--" + boundary + "\r\n";
        data += "Content-Disposition: form-data; name=\"" + i + "\" 
         \r\n\r\n" + metadata[i] + "\r\n";
    }
    data += "--" + boundary + "\r\n";
    data += "Content-Disposition: form-data; name=\"\"; filename=\"" + 
    blob.getName() + "\"\r\n";
    data += "Content-Type:" + blob.getContentType() + "\r\n\r\n";
    var payload = Utilities.newBlob(data).getBytes()
                                         .concat(blob.getBytes())
                                         .concat(Utilities.newBlob("\r\n--" + boundary + "--\r\n").getBytes());

    var headers = {
        Authorization: Utilities.formatString("Bearer %s", this.oauthService.getAccessToken())
    };

    var options = {
        method: "post",
      contentLength: blob.getBytes().length,
        payload: payload,
        contentType : "multipart/form-data;charset=utf-8; boundary=--" + 
        boundary,
        muteHttpExceptions: true,
        headers: headers,
    };

在准备有效负载时,我有没有做错什么?

要帮助您创建对Gmail API的请求,您可以参考。另外,有关访问Gmail API的深入指南,请访问@VladimirCastillo,如何获得边界?