我正在尝试学习如何从当地政府数据站点查询数据(希望我可以教数学学生进行一些数据分析)。我希望获取数据并将其插入Google表格。以下是官方网站提供的有关如何执行查询的示例:
var data = {
resource_id: '1b702208-44bf-4829-b620-4615ee19b57c', // the resource id
limit: 5, // get 5 results
q: 'jones' // query for 'jones'
};
$.ajax({
url: 'https://data.gov.sg/api/action/datastore_search',
data: data,
dataType: 'jsonp',
success: function(data) {
alert('Total results found: ' + data.result.total)
}
});$
我在Google Apps脚本中尝试了以下代码:
function testapi(){
var data = {
resource_id: '1b702208-44bf-4829-b620-4615ee19b57c', // the resource id
limit: 5, // get 5 results
q: 'Yishun'
};
var url = "https://data.gov.sg/api/action/datastore_search";
var response = UrlFetchApp.fetch(url,data).getContentText();
}
我收到404错误。我认为未通过“数据”选项。
将感谢您的帮助。我是数学老师,不是编码专家。
更新:我将代码更改为此,但仍然出现404错误。
function testapi(){
var data = {
resource_id: '1b702208-44bf-4829-b620-4615ee19b57c', // the resource id
limit: 5, // get 5 results
q: 'Yishun' // query for 'jones'
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(data)
};
var url = "https://data.gov.sg/api/action/datastore_search";
var response = UrlFetchApp.fetch(url,options).getContentText();
}
答案 0 :(得分:0)
只要payload
的{{1}} / options
自变量中出现params
键,UrlFetchApp
就会默认设置为method
。任何更改获取方法的尝试都会被“无声地”忽略。其他类似的脚本平台会自动将post
转换为url查询参数。但是,payload
默默地更改了发布方法,仅此而已。
重新创建数据对象作为查询字符串。例如,UrlFetchApp
应该更改为data:{x:1,y:2}
并附加到url。
?x=1&y=2