So, the first script in question isn't lua, but is javascript.
var SCRIPT_PROP = PropertiesService.getScriptProperties();
function doGet(e){
try {
var key = e.parameter["key"]
var sheetName = e.parameter["sheet"]
var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
var sheet = doc.getSheetByName(e.parameter["sheet"]);
var data = sheet.getDataRange().getValues();
var value
for (var i = 1; i < data.length; i++) {
if (data[i][0] == key) {
value = data[i][1];
}
}
if (value){
return ContentService
.createTextOutput(JSON.stringify({"result":"success", "value": value}))
.setMimeType(ContentService.MimeType.JSON);
} else {
return ContentService
.createTextOutput(JSON.stringify({"result":"error", "error": "Key not found"}))
.setMimeType(ContentService.MimeType.JSON);
}
} catch(e){
return ContentService
.createTextOutput(JSON.stringify({"result":"error", "error": "Database does not exist"}))
.setMimeType(ContentService.MimeType.JSON);
}
}
function doPost(e){
var sheetNom = e.parameter["sheet"];
var lock = LockService.getPublicLock();
lock.waitLock(30000);
try {
var key = e.parameter["key"]
var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
var sheet = doc.getSheetByName(e.parameter["sheet"]);
var data = sheet.getDataRange().getValues();
var headRow = e.parameter.header_row || 1;
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow()+1;
var row = [];
for (var i = 1; i < data.length; i++) {
if (data[i][0] == e.parameter["key"]) {
nextRow = i + 1;
}
}
for (i in headers){
row.push(e.parameter[headers[i]]);
}
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
return ContentService
.createTextOutput(JSON.stringify({"result":"success", "row": nextRow}))
.setMimeType(ContentService.MimeType.JSON);
} catch(e){
return ContentService
.createTextOutput(JSON.stringify({"result":"error", "error": e, "test": "Test", "sheet": sheetNom}))
.setMimeType(ContentService.MimeType.JSON);
} finally {
lock.releaseLock();
}
}
function setup() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
SCRIPT_PROP.setProperty("key", doc.getId());
}
Yes, I know I know, this is a site strictly on lua but the javascript is aiding the lua script to run, which is as followed.
local scriptId = "AKfycbwQhOD-lpTR7l5mv85gReaGVVBe_3FjOxoFIAxveNzN4BAxmak"
local url = "https://script.google.com/macros/s/" .. scriptId .. "/exec"
local httpService = game:GetService'HttpService'
local module = {}
game:WaitForChild('HttpService')
function decodeJson(json)
local jsonTab = {} pcall(function ()
jsonTab = httpService:JSONDecode(json)
end) return jsonTab
end
function encodeJson(data)
local jsonString = data pcall(function ()
jsonString = httpService:JSONEncode(data)
end) return jsonString
end
function doGet(sheet, key)
local json = httpService:GetAsync(url .. "?sheet=" .. sheet .. "&Player Name=" .. key)
local data = decodeJson(json)
if data.result == "success" then
return data.value
else
warn("Database error:", data.error)
return
end
end
function doPost(sheet, key, data)
local json = httpService:UrlEncode(encodeJson(data))
local retJson = httpService:PostAsync(url, "sheet=" .. sheet .. "&Player Name=" .. key .. "&EXP=" .. json, 2)
local data = decodeJson(retJson)
print(retJson)
if data.result == "success" then
return true
else
warn("Database error:", data.error)
return false
end
end
function module:GetDatabase(sheet)
local database = {}
function database:PostAsync(key, value)
return doPost(sheet, key, value)
end
function database:GetAsync(key)
return doGet(sheet, key)
end
return database
end
return module
How would I add or remove arguments from this script? I want it to be able to print the value of something in google sheets in the roblox game(the java script is in the google sheets)

1 comment
https://forum.scriptinghelpers.org/topic/123/using-google-spreadsheet-in-roblox