Google Sheet API, 'valueInputOption' 是必需的但未指定

Google Sheet API, 'valueInputOption' is required but not specified

我想用Line传输数据到Google Sheet.

function appendMyRow(userId) {
var request = {
   auth: oauth2Client,
   spreadsheetId: mySheetId,
   range:encodeURI("表單回應 1"),
   insertDataOption: 'INSERT_ROWS',
   valueInputOption: 'USER_ENTERED',
   resource: {
     "values": [
       users[userId].replies
     ]
   }
};
var sheets = google.sheets("v4");
sheets.spreadsheets.values.append(request, function(err, response) {
   if (err) {
      console.log('The API returned an error: ' + err);
      return;
   }
});

错误信息是: "The API returned an error: Error: 'valueInputOption' is required but not specified"

package.json 的一部分: "dependencies":{ "@line/bot-sdk": "^6.3.0", "express": "^4.16.4", "google-auth-library": "^0.12.0", "googleapis": "^27.0.0", "linebot": "^1.4.1", "request": "^2.88.0" }

valueInputOption 应该设置什么值? 我试过 "RAW"、'RAW'、"USER_ENTERED"、'USER_ENTERED'。 但仍然 return 同样的错误。 谢谢!!!!!

我原以为20181031版本的参数'valueInputOption'的API规范中有错误,从技术上讲是没有按要求定义的。

发现规范将 valueInputOption 参数位置指定为 'query',我现在意识到这意味着它作为 GET 参数添加到路径的末尾,而不是 'path' 位置值,它指示该值被替换到路径字符串中,而不是作为 GET 参数附加。

您可能需要修改路径以根据需要将此参数作为 GET 参数包含在内。

即。对于 'sheets.spreadsheets.values.update' 编辑点,规范路径应为 'v4/spreadsheets/{spreadsheetId}/values/{range}?valueInputOption={valueInputOption}'

我使用 Perl,所以我不太确定它如何转换为 NodeJS SDK,但它应该能让您入门。

一个适用于另一个的解决方案正在退回到 API 规范版本,如

中所述