【问题标题】:node.js Google Sheets API not allowing posting new valuesnode.js Google Sheets API 不允许发布新值
【发布时间】:2018-06-05 02:18:17
【问题描述】:

我一直在从事一个 node.js 项目,该项目根据人名和日期提取单元格的位置。我可以很容易地弄清楚这一点,但是当需要发布到单元格时,.update 函数只返回 400 响应,表示请求的格式错误。我一直在搜索所需表格的文档,并尝试在他们的网站上使用 API 控制台但无济于事。这是我的代码示例

active = [<name>, <value>, <comment>, <var>, <column>, <row>];
var request1 = {
        spreadsheetId: <id> ,
        range: active[5] + active[4],
        auth: auth,
        valueInputOption: "RAW",
        resource: {
            "range": active[5] + active[4],
            "values": [active[1]]
        }
    }
sheets.spreadsheets.values.update(request1, function(err, response){
    if (err) console.log(err);
    else return;

但是,这会返回以下响应,

{ message: 'Invalid value at \'data.values[0]\' (type.googleapis.com/google.protobuf.ListValue), " "',
   domain: 'global',
   reason: 'badRequest' }

我没有弄清楚这个请求的哪一部分使它“不好”。 API 没有提供任何关于它为什么不接受我的请求的线索。我有适当的范围和身份验证,我的 get 请求工作得很好。消息中的 URL 链接到 404 页面。

任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: javascript node.js google-sheets-api


    【解决方案1】:

    使用sheets.spreadsheets.values.update的请求正文的values必须是二维数组。从您的问题来看,active[1] 似乎是一个字符串。那么如何修改如下?

    发件人:

    "values": [active[1]]
    

    收件人:

    "values": [[active[1]]]
    

    参考:

    注意:

    • 此答案假设您可以使用 Sheets API。
    • 如果这不起作用,我可以问你range: active[5] + active[4],的值吗?

    【讨论】:

    • @dropTableUsers 欢迎。很高兴您的问题得到了解决。
    猜你喜欢
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多