【问题标题】:getconfig() for Community Connectors, how to employ user input社区连接器的 getconfig(),如何使用用户输入
【发布时间】:2018-03-01 14:14:57
【问题描述】:

社区连接器功能很新,我搜索过,信息不多。我们正在构建一个社区连接器,以使 Data Studio 能够从 Google My Business Insights 中提取 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 的下拉菜单中进行选择。但是用另一种方式重复这个问题:我们如何访问用户选择的选项?

【问题讨论】:

    标签: google-data-studio


    【解决方案1】:

    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();
    }
    

    见:Connector API Reference
    见:Build a Connector Guide

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-31
        • 1970-01-01
        • 1970-01-01
        • 2020-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多