无法识别具有多个参数的DoGet

时间:2020-04-16 12:59:33

标签: http google-apps-script google-sheets lua

我目前正在尝试将Lua脚本与GS WebApp连接。连接正常,但是由于我对GScripting的了解不足,所以我不确定为什么它不能正确保存数据。

在Lua方面,我只是用一个硬代码传递一个随机名称和简单的数字用户ID。

local HttpService = game:GetService("HttpService")
local scriptID = scriptlink
local WebApp 

local function updateSpreadSheet ()
    
    local playerData = (scriptID .. "?userid=123&name:Jhon Smith")
    WebApp = HttpService:GetAsync(playerData)
end

do 
    updateSpreadSheet()
end

在Google脚本方面,我只将数据保存在最后一行,然后添加用户ID的值和名称。

function doGet(e) {
  console.log(e)
 // console.log(f)
  callName(e.parameter.userid,e.parameter.name);
}

function callName(userid,name) {
  // Get the last Row and add the name provided
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(sheet.getLastRow() + 1,1).setValues([userid],[name]);
}

但是,脚本保存的唯一数据是名称,出于我尚未发现的原因,绕过了userid

1 个答案:

答案 0 :(得分:0)

setValues()需要2D数组,范围尺寸应对应于该数组。该脚本仅获得1 x 1范围,而setValues参数不是2D数组。修正语法或使用appendRow

sheet.getRange(sheet.getLastRow() + 1,1,1,2).setValues([[userid,name]]);
//or
sheet.appendRow([userid,name])

参考文献: