Google Sheet API,“ valueInputOption”为必填项,但未指定

时间:2018-11-08 18:23:04

标签: node.js google-sheets-api

我想使用Line将数据传输到Google表格。

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;
   }
});

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

package.json的一部分: “依赖关系”:{     “ @ 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”。 但仍然会返回相同的错误。 谢谢!!!!!

1 个答案:

答案 0 :(得分:1)

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

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

您可能需要修改路径,以根据需要将此参数包括为GET参数。

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

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

一种适用于另一种解决方案的解决方案已退回到Google api version version 25 is giving followin error: Error: 'valueInputOption' is required but not specified

中所述的API Spec早期版本。