Google Sheet API,需要“valueInputOption”但未指定

黃翊唐*_*黃翊唐 5 node.js google-sheets-api

我想使用 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;
   }
});
Run Code Online (Sandbox Code Playgroud)

错误消息是:“API 返回错误:错误:'valueInputOption' 是必需的,但未指定”

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”。但仍然返回相同的错误。谢谢!!!!!

Pet*_*ott 2

我最初认为修订版 20181031 中的 API 规范中参数“valueInputOption”存在错误。从技术上讲,它没有按要求定义。

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

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

IE。对于“sheets.spreadsheets.values.update”ed-point,规范路径应为“v4/spreadsheets/{spreadsheetId}/values/{range}?valueInputOption={valueInputOption}”

我使用 Perl,所以我不太确定它如何转换为 NodeJS SDK,但它应该给您一个开始。

适用于另一个解决方案的一个解决方案是回退到早期的 API 规范版本,如Google api 版本 25 中所述,给出以下错误:错误:“valueInputOption”是必需的,但未指定