Service Error: Spreadsheets on Google Scripts
Scope
I started to write an script that will make chained calls to an API (with a JSON response) and write the result into a Spreadsheet.
What Happens:
Once i debug the script code, it runs just fine, with no major problem, but once i run it from the Spreadsheet button itself (from the menu i created) it runs some steps of the script and than, pops a : Service Error: Spreadsheet
with no other error details.
Weirdness
I Started to "Log" the current step of the process to a Spreadsheet cell, so that i can monitor its progress while running the script out of the debugger.
The problem is, once i move some "random" pieces such as :
sheet.getRange("F2").setValue(currentPage);
the code tends to break in different points.
Code Sample :
You can find a code to reproduce the issue here : http://pastebin.com/HjmSwEYZ
All you have to do is :
1 - Create a new Spreadsheet on Google Drive
2 - Hit Tools -> Script Editor
3 - Create a new Script, paste the code in, and save
4 - Reload the Spreadsheet (F5) so that the custom menu will now appear "Guild Wars 2 Tracker"
5 - Click the button and hit "List All"
Desired Output:
What this code should (if it wasn't for this error) do is :
1 - Execute a request on this url : http://www.gw2spidy.com/api/v0.9/json/items/all/1 (which will return the first page of Guild Wars 2 itens)
2 - Iterates over each page, parsing the json and writing the returned values into the Spreadsheet
Disclaimer:
Sorry about all the "Log" messages in the sheet. This was a desperate attempt to track my progress, i know i should't do this.
Thanks in advance
Update 1:
After creating another Spreadsheet and pasting the pastebin code in its own Script Project i could run it for on interaction, but that was it. This time thus, it raised a different error : We're sorry, a server error occurred. Please wait a bit and try again.
We're sorry, a server error occurred. Please wait a bit and try again.
I like what ellockie said - I was (unwittingly) having the same problem. I was trying to range.sort(8), but to collect the range, I used:
sheet.getRange(2,1,sheet.getMaxRows(), sheet.getMaxColumns());
But what I should have used was:
sheet.getRange(2, 1, sheet.getMaxRows()-1, sheet.getMaxColumns());
The error message, as of 5/1/2015, still is very cryptic and offers no further details than the "Service error: Spreadsheets".
Marchello, I've run into the same problem today and have just found an answer to get round it here: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3815 (see #4). The idea is to add rows to the bottom of the sheet that would let the scripts start working again. It does work in my case.
In my case I had formulas with 'dynamic' ranges, ie =sum(b2:b)
, which I remember was mentioned as a casuse of issues in the new google spreadsheets.
Correcting to sum(b2:b22)
(making sure the range doesn't exceed the sheet's last row) solved the problem.
上一篇: 创建多个boost :: polygons的最快方法是什么?
下一篇: 服务错误:Google脚本上的电子表格