我正在尝试为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);
}
}
});
你可以在第5行的日志中看到 getSchema
正在返回2个字段,"label"和"stageId."然而,日志中的下一行显示 getData
正在使用的对象只有一个字段"label."
在我的生活中,我没有能够弄清楚我在哪里出错了,真的可以使用一些帮助!
1 回答
在数据源初始化/配置期间调用getSchema() . 它适用于所有字段,通常在创建数据源时完成 .
每当您在仪表板上创建/查看图表元素时,都会调用getData(),并且只调用该图表元素中的特定字段 . 此字段列表将在request.fields中传递 .
这workflow diagram可能会有所帮助 .
在您的日志中,第3行和第4行发生在创建数据源时 . 第5行发生在向仪表板添加图表元素时(该图表元素只有
label
字段) .