【发布时间】:2020-04-16 16:27:02
【问题描述】:
我并不是真正的技术人员,但我一直在尝试学习 JavaScript 代码,因为我待在家里并决定在 API 上尝试一下。我已经能够成功地进行 API 调用并将响应保存在一个数组中,但发现将结果设置为谷歌表是一个挑战。我将不胜感激这方面的任何帮助。这是我的代码。
API 调用:
var call_token = 'token';
var endpoint = 'projects?';
var call_url = 'url'
var pages = 2500
function get_All_Projects() {
var options = {
method: 'get',
headers: {
Authorization: 'Bearer ' + call_token
}
};
var url = call_url + endpoint +'auth='+ call_token + pages
var response = UrlFetchApp.fetch(url,options);
var info= JSON.parse(response);
var content = info.data;
var project_arr=[];
var identity={}
if(content.length > 0 ){
for (var i = 0; i<content.length; i++) {
identity.Project_ID=content[i].id
identity.Project_Name=content[i].name
identity.Project_Start_Date=content[i].starts_at
identity.Project_End_Date=content[i].ends_at
identity.Project_Status=content[i].project_state
project_arr.push(identity)
return (identity);
Logger.log(project_arr)
}
}
}
这是我在将其传递给谷歌表格时遇到的挑战。我没有收到任何错误,但我没有看到数据被附加到工作表中。
function getSheet() {
var info = get_All_Projects()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
for (var j = 0; j < info.length; j++) {
sheet.getRange(2 + j, 1).setValue(info[j].Project_Status);
sheet.getRange(2 + j, 2).setValue(info[j].Project_End_Date);
sheet.getRange(2 + j, 3).setValue(info[j].Project_Start_Date);
sheet.getRange(2 + j, 4).setValue(info[j].Project_ID);
sheet.getRange(2 + j, 5).setValue(info[j].Project_Name);
}
}
来自 POSTMAN 的示例响应
"data": [
{
"id": 1800301,
"name": "TEST Project ONE",
"ends_at": "2020-06-30",
"starts_at": "2017-07-03",
"project_state": "Confirmed",
"tags": {
"paging": {
"self": "/api/v1/projects/1894300/tags?per_page=0&page=1",
"next": null,
"previous": null,
"page": 1,
"per_page": 0
},
"data": []
}
},
{
"id": 1800301,
"name": "TEST Project4 TWO",
"ends_at": "2020-06-30",
"starts_at": "2017-07-03",
"project_state": "Confirmed",
"tags": {
"paging": {
"self": "/api/v1/projects/1894301/tags?per_page=0& page=1",
"next": null,
"previous": null,
"page": 1,
"per_page": 0
},
"data": []
};
【问题讨论】:
-
你返回的是
identity而不是project_arr。 -
@TheMaster,谢谢。我已经使用从 POSTMAN 获得的示例响应编辑了我的问题
-
你为什么要创建
project_arr?与content基本相同,只是名称不同。 -
@TheMaster,正如我的问题所示,我不是很懂技术(我是未婚夫),我会很感激这里的指导
标签: javascript arrays google-apps-script google-sheets javascript-objects