Google data studio getData()调用中未定义configParams

Google data studio getData()调用中未定义configParams,google-data-studio,Google Data Studio,我正在建立一个社区连接器,我在挠头;文件规定: 获取数据 返回给定请求的表格数据 请求 @param{Object}请求包含数据的JavaScript对象 请求参数 请求参数包含用户提供的值和附加值 可用于完成数据请求的信息。它有 以下结构: {configParams:object,scriptParams:{ 样本提取:布尔, lastRefresh:string},日期范围:{ 起始日期:字符串, endDate:string},字段:[ { 对象字段 }]} 至少我已经正确设置了getC

我正在建立一个社区连接器,我在挠头;文件规定:

获取数据

返回给定请求的表格数据

请求

@param{Object}请求包含数据的JavaScript对象 请求参数

请求参数包含用户提供的值和附加值 可用于完成数据请求的信息。它有 以下结构:

{configParams:object,scriptParams:{ 样本提取:布尔, lastRefresh:string},日期范围:{ 起始日期:字符串, endDate:string},字段:[ { 对象字段 }]}

至少我已经正确设置了getConfig,我的配置是从用户请求的,但是我的getData函数没有被传递给configParams对象。这是我的密码

function getConfig(request) {

  var Harvest = HarvestService({
    token: getHarvestAuthService().getAccessToken()
  });
  var accounts = Harvest.accounts.list();
  var options = accounts.map(function(account) {

    return {
      label: account.name,
      value: account.id
    };

  });

  var config = {
    configParams: [
      {
        type: 'SELECT_SINGLE',
        name: 'harvestAccountId',
        displayName: 'Harvest Account ID',
        helpText: 'The ID of the Harvest Account to pull data from.',
        options: options
      }
    ],
    dateRangeRequired: true
  };

  return config;

}

function getData(request) {

  var startDate = request.dateRange.startDate;
  var endDate = request.dateRange.endDate;
  var accountId = request.configParams.harvestAccountId;
  var harvestAuthService = getHarvestAuthService();

  var Harvest = HarvestService({
    token: harvestAuthService.getAccessToken(),
    account: accountId
  });

  var fieldKeys = request.fields.map(function(field) { return field.name; });

  var entries = Harvest.entries.list({
    startDate: new Date(startDate),
    endDate: new Date(endDate)
  });

  var rows = entries.map(entryToRow);

  return {
    schema: request.fields,
    rows: rows,
    cachedData: false
  };

}
当我进行测试/调试时,我可以在配置步骤中选择一个帐户,模式会正确返回,但当我尝试向报告中添加小部件时,会出现以下异常:

脚本错误消息: TypeError:无法从undefined中读取属性harvestAccountId。 脚本错误原因:用户脚本 错误stacktrace:getData:244


非常感谢您的建议。

发现了问题-问题是选项的value属性是一个数字,但它必须是一个字符串:

把这个留在这里以防其他人被卡住。Data Studio Community Connector的config select选项必须具有标签和值的字符串,并且没有人会强制您使用这些字符串。修正是这样的:

var options = accounts.map(function(account) {

  return {
    label: account.name,
    value: account.id + ''
  };

});
通常,当没有从用户配置传递配置值时,request.configParams是未定义的

测试连接器时,是否在harvestAccountId下拉列表中选择一个值? 如果您计划与其他用户共享此连接器,最好为harvestAccountId设置一个默认值,以防用户未选择选项。 您可以使用查看getConfig的响应,以确保为选项传递正确的值。然后,您还可以记录getData请求,以便更好地了解请求中到底传递了什么。
谢谢你的回答;问题是我的值不是字符串,也不是在幕后强制的。嘿,我们连接器的一些用户报告了一个问题。我检查了日志,结果发现由于某种原因,configParams在getData请求中未定义。我验证了您的所有建议-getConfig响应看起来不错,所有配置参数都是字符串。用户报告说,这种情况每天都会发生,唯一有帮助的是更新数据源:我要求他们与我共享该报告,但我认为它没有为我中断。你还有其他想法吗?原因是什么?