我正在为Google Data Studio创建自定义社区连接器。
我执行以下代码,因此请向我建议这段代码有什么问题。
function getAuthType() {
var response = { type: 'NONE' };
return response;
}
function getConfig(request) {
var cc = DataStudioApp.createCommunityConnector();
var config = cc.getConfig();
return config.build();
}
function getFields(request) {
var cc = DataStudioApp.createCommunityConnector();
var fields = cc.getFields();
var types = cc.FieldType;
var aggregations = cc.AggregationType;
fields.newDimension()
.setId('itemname')
.setType(types.TEXT);
fields.newDimension()
.setId('color')
.setType(types.TEXT);
fields.newMetric()
.setId('quantity')
.setType(types.NUMBER)
.setAggregation(aggregations.SUM);
fields.newDimension()
.setId('day')
.setType(types.YEAR_MONTH_DAY);
return fields;
}
function getSchema(request) {
var fields = getFields(request).build();
return { schema: fields };
}
function responseToRows(requestedFields, response) {
// Transform parsed data and filter for requested fields
return response.map(function(dailyDownload) {
var row = [];
requestedFields.asArray().forEach(function (field) {
switch (field.getId()) {
case 'day':
return row.push(dailyDownload.day.replace(/-/g, ''));
case 'quantity':
return row.push(dailyDownload.quantity);
case 'itemname':
return row.push(dailyDownload.itemname);
case 'color':
return row.push(dailyDownload.color);
default:
return row.push('');
}
});
return { values: row };
});
}
function getData(request) {
var requestedFieldIds = request.fields.map(function(field) {
return field.name;
});
var requestedFields = getFields().forIds(requestedFieldIds);
// Fetch and parse data from API
var url = 'https://my-url';
var response = UrlFetchApp.fetch(url);
var parsedResponse = JSON.parse(response);
var rows = responseToRows(requestedFields, parsedResponse);
return {
schema: requestedFields.build(),
rows: rows
};
}
(1)TypeError:无法调用函数中未定义的方法“ map” responseToRows(requestedFields,response)
(2)TypeError:无法从var的undefined中读取属性“ fields” requestFieldIds = request.fields.map(function(field)。
谢谢。