【发布时间】:2020-03-04 13:18:23
【问题描述】:
我有两个功能。
一个查询项目ID、项目名称和项目状态并将它们保存在一个数组中。这工作正常。
function get_All_Projects() {
var options = {
method: "get",
headers: {
Authorization: "Bearer " + tkft_token
}
};
var url = tkft_url + endpoint + "auth=" + tkft_token + pages;
var response = UrlFetchApp.fetch(url, options);
var info = JSON.parse(response);
var content = info.data;
var project_arr = [];
var identity = {};
for (var i = 0; i < content.length; i++) {
if (content.length > 0) {
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);
}
}
//Logger.log(project_arr);
}
第二个函数应该使用保存在 project_arr 中的 ID,以便我可以获取每个项目的所有用户。挑战是,我很难在此函数的 URL 中包含一个数组对象,并且还循环遍历每个项目 ID。我一直遇到 Cannot read property 'length' of undefined 错误,我缺少什么吗?
function get_By_Users(project_arr) {
var options = {
method: 'get',
headers: {
Authorization: 'Bearer ' + tkft_token
}
};
for (var i = 0; i<project_arr.length; i++) {
var url = tkft_url+ 'projects/'+ project_arr.Project_ID +'/users?auth='+ tkft_token + pages
var response = UrlFetchApp.fetch(url,options);
var info= JSON.parse(response);
var content = info.data;
}
Logger.log(content);
}
【问题讨论】:
-
你怎么打电话给
get_By_Users()? -
@TheMaster,不确定我是否理解您的问题,但要呼吁所有用户,这是 URL 结构 /api/v1/projects/
/users 基本上,我应该从 get_All_Projects() 函数中的 *project_arr 获取 project_id 并在第二个函数的 URL 中使用它 -
如果您在
get_All_Projects()函数之外调用get_By_Users(),project_arr未定义,因为它是本地变量。 -
阅读this并解释你是如何调用这个函数的。
-
即使你得到了答案,这是基本的东西,如果你阅读并练习上面的基本功能链接,它会对你有好处。
标签: javascript arrays google-apps-script javascript-objects urlfetch