1

社区连接器功能很新,我搜索过,信息不多。我们正在构建一个社区连接器,以使数据洞察能够从 Google 我的业务洞察中提取 API 数据。

此处描述了 getconfig() 函数:https ://developers.google.com/datastudio/connector/reference#getconfig

我们可以向用户显示我们的配置选项,这很容易,但是 API 参考并不清楚下一步是什么:如何将用户输入传递给下一步。如果我在这里没有使用正确的术语,请原谅我。

    var config = {
    configParams: [
      {
      "type": "SELECT_SINGLE",
      "name": "SELECT_SINGLE",
      "displayName": "Select a Location",
      "helpText": "Pick One!",
      "options": [
        {
          "label": locationName,
          "value": name
        },
        {
          "label": "altLocationName",
          "value": "altName"
        }
      ]
    },
    ]
  };
  return config;
}

上述代码正确显示给用户,用户可以在建立初始数据连接时从 Data Studio 的下拉菜单中进行选择。但是用另一种方式重复这个问题:我们如何访问用户选择的选项?

4

2 回答 2

5

getData()和函数都使用参数调用(在文档中称为“请求”)getSchema()getConfig()参数是一个对象,包含每个阶段的各种信息。

  • 在这个getConfig()阶段,它包括一个名为 的属性languageCode,在我的例子中设置为'en-GB'
  • getSchema()阶段提供了一个名为 的属性configParams,它本质上是getConfig()用户设置后所有设置的结果。
  • 最后,getData()获取最多信息,包括此请求是否用于提取样本数据以供 google 运行启发式算法,最重要的是:再次将configParams.

以下是示例request对象的外观:

{                               //------ Present in:
  languageCode: en-GB,            //////-Only getConfig()

  configParams: {                 //////-getSchema() + getData()
    SELECT_SINGLE: altName          ////-+
  },                                   //

  scriptParams: {                  //////-Only getData()
    sampleExtraction: true           ////-|
    lastRefresh: 'new Date()'        ////-+
  },                                   //

  fields: [                        //////-Only getData()
    { name: FooAwesomeness },        ////-|
    { name: BarMagicality },         ////-|
    { name: BazPizzazz }             ////-+
  ]                                    //

  dimensionsFilters: [             //////-Only getData()
    [{                                 // |
      fieldName: "string",           ////-|
      values: ["string", ...],       ////-|
      type: DimensionsFilterType,    ////-|
      operator: Operator             ////-+
    }]                                 //
  ]                                    //
}                                //------

请注意
,您的代码 中的name字段,当前设置为SELECT_SINGLE,将更适合被调用location,因为它是您以后访问它的方式。
通过这种方式,您将访问: 而不是 :)
request.configParams.location

request.configParams.SELECT_SINGLE


另请注意 ,指定配置屏幕的格式已更新。您的配置现在可以按如下方式完成:

function getConfig(request) {
 var cc = DataStudioApp.createCommunityConnector();
 var config = cc.getConfig();
 config
     .newSelectSingle()
     .setId('location') // You can call this "location"
     .setName('Select a Location')
     .setHelpText('Pick One!')
     .addOption(config.newOptionBuilder()
       .setLabel('Location Name')
       .setValue('value'))
     .addOption(config.newOptionBuilder()
       .setLabel('Alternate Location Name')
       .setValue('altValue'))

 config.setDateRangeRequired(true);
 config.setIsSteppedConfig(false);

 return config.build();
}

请参阅:连接器 API 参考
请参阅:构建连接器指南

于 2018-05-29T15:20:56.267 回答
0

用户选择将传递给对象下的getSchema()getData()请求configParams

使用您的示例,假设用户altLocationName在配置屏幕中进行选择。在您的 getSchema() 和 getData() 函数中,request.configParams.SELECT_SINGLE应该返回altName.

于 2017-09-22T01:28:10.007 回答