google-apps-script - Google 数据洞察连接器 getData 缺少字段
问题描述
我正在尝试为 HubSpot 创建一个数据连接器,并且一直在努力解决这个问题。据我所知,我做的一切都是正确的,但getData
调用中的请求对象缺少我在架构中指定的字段之一。
当我检查日志时,getSchema
正在返回两个字段,但由于某种原因,我似乎只得到一个。我在下面包含了代码和日志:
function getData(request) {
console.log("ORIGINAL FIELDS FOR GETDATA(): " + JSON.stringify(request.fields));
switch (request.configParams.apiEndPoint) {
case "sources":
var url = API_URL + "/analytics/v2/reports/totals/summarize/daily?start=" + startYYYYMMDD + "&end=" + endYYYYMMDD;
break;
case "stages":
console.info("Fetching for Stages API");
var url = API_URL + "/deals/v1/pipelines/default";
getPipelineData(request, url);
break;
}
}
function getPipelineData(request, endPoint) {
var header_row = [];
console.log("FIELDS: " + JSON.stringify(request));
request.fields.forEach(function(field) {
for (var i = 0; i < mySchema.length; i++) {
console.log("for loop i: " + i);
console.log("mySchema[i]: " + JSON.stringify(mySchema[i]));
if (mySchema[i].name === field.name) {
console.log("Matched " + mySchema[i].name + " to " + field.name);
header_row.push(mySchema[i]);
} else {
console.error("Did not match " + mySchema[i].name + " to " + field.name);
}
}
});
您可以在日志中看到关于getSchema
返回 2 个字段“label”和“stageId”的第 5 行。然而,日志中的下一行显示正在使用的对象getData
只有一个字段“标签”。
在我的一生中,我无法弄清楚我在哪里出错并且真的可以使用一些帮助!
解决方案
getSchema() 在数据源初始化/配置期间被调用。它为所有字段调用,通常在您创建数据源时执行一次。
每当您在仪表板上创建/查看图表元素时都会调用 getData(),并且仅针对该图表元素中的特定字段调用。此字段列表将在 request.fields 中传递。
此工作流程图可能会有所帮助。
在您的日志中,第 3 行和第 4 行发生在您创建数据源时。第 5 行发生在您向仪表板添加图表元素时(并且该图表元素只有label
字段)。
推荐阅读
- r - 为什么我在 R 中的预测函数没有考虑到数据的上升趋势
- mysql - 如何通过查询从组中获取基于最新日期的最高价格
- php - imap_fetchbody 函数不获取所有电子邮件
- powershell - Powershell脚本创建运行干净的mgr而不删除压缩文件
- regex - 正则表达式只是字符串中的最后一个数字
- java - 带有原始数组的列表与带有对象数组的列表
- java - 如何在 Mockito 和 JUint 中模拟具有复杂请求的服务?
- sparql - 在时间范围内改进 SPARQL
- azure - 每个租户的 Azure 存储 Blob/文件
- java - 我们可以有一个工厂类作为spring bean,并有一个工厂方法根据条件返回多个spring bean吗?