使用PATH_USER_PASS的身份验证类型

时间:2020-10-26 06:03:05

标签: google-data-studio

当我尝试建立Google Data Studio社区连接器时遇到问题。具体来说,一切正常,如果使用身份验证的USER_PASS选项,则可以在浏览器屏幕上看到渲染的数据,但是如果使用PATH_USER_PASS,则不能正确渲染。当我查看堆栈跟踪时,它甚至都没有显示getData()函数已执行。有人可以帮我吗?

从清单文件中发布以下代码,然后点击CONNECT和EXPLORE,将成功给出一行数据。

当我仅将AuthType更改为USER_PASS时,也会成功。

但是,当我仅将AuthType更改为PATH_USER_PASS时,它将中断。

请注意,我将事情硬编码到我的getData和getSchema中,因此运行此代码不需要任何用户输入。获取数据的过程不以任何形式绑定到身份验证过程。这表明这可能是Google Data Studio的错误之一。

正如我所说,当我切换到PATH_USER_PATH身份验证方法时,getData()函数甚至都没有运行。

任何帮助将不胜感激!!!!

main.js:


var cc = DataStudioApp.createCommunityConnector();

function getAuthType() {
    return cc.newAuthTypeResponse()
        .setAuthType(cc.AuthType.NONE)
        .build();
}

function isAuthValid() {
  return true;
}

function setCredentials(request) {}

function getConfig(request) {
    var config = cc.getConfig();
    return config.build();
}

function getSchema(request) {
  var fields = getFields(request).build();
  return { schema: fields };
}

function responseToRows(requestedFields, response) {
  return response.map(function(submissions) {
    var row = [];
    requestedFields.asArray().forEach(function (field) {
      switch (field.getId()) {
        case 'student_name':
          return row.push(submissions.student_name);
        case 'student_age':
          return row.push(submissions.student_age);
        case 'student_school_year':
          return row.push(submissions.student_school_year);
        case 'submissionDate':
          return row.push(submissions.__system.submissionDate)
        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);
  
  // fake response from hardCodedData.
  var hardCodedData ='{"value":[{"__id":"uuid:3ab058df-5039-41cd-b16b-5c21f01bf60b","student_name":"Pieter Benjamin","student_age":21,"student_school_year":"Senior","select_student_school_year":"senior","__system":{"submissionDate":"2020-10-10T21:02:40.428Z","submitterId":"532","submitterName":"Pieter Benjamin","attachmentsPresent":0,"attachmentsExpected":0,"status":null},"meta":{"instanceID":"uuid:3ab058df-5039-41cd-b16b-5c21f01bf60b"}}],"@odata.context":"https://sandbox.central.getodk.org/v1/projects/124/forms/odata%20connector%20scheme.svc/$metadata#Submissions"}'
  
  var parsedResponse = JSON.parse(hardCodedData).value;
  var rows = responseToRows(requestedFields, parsedResponse);
  
  return {
    schema: requestedFields.build(),
    rows: rows
  };

}

// hard coded schema
function getFields(request) {
    var cc = DataStudioApp.createCommunityConnector();
    var fields = cc.getFields();
    var types = cc.FieldType;
    var aggregations = cc.AggregationType;
    
    fields.newDimension()
    .setId('student_name')
    .setType(types.TEXT);

    fields.newMetric()
    .setId('student_age')
    .setType(types.NUMBER);

    fields.newMetric()
    .setId('student_school_year')
    .setType(types.TEXT);

    fields.newDimension()
    .setId('submissionDate')
    .setType(types.YEAR_MONTH_DAY);

    return fields;
}


function isAdminUser() {
  return true;
}

appsscript.json:

{
  "timeZone": "America/Los_Angeles",
  "dependencies": {
  },
  "webapp": {
    "access": "ANYONE",
    "executeAs": "USER_ACCESSING"
  },
  "oauthScopes": ["https://www.googleapis.com/auth/script.external_request"],
  "runtimeVersion": "V8",
  "dataStudio": {
    "name": "ODK central API connector",
    "logoUrl": "https://getodk-a3b1.kxcdn.com/uploads/default/original/2X/3/381d364b5dd1069f6540bbd7a38ea48f11023ae9.jpg",
    "company": "UW Impact++",
    "companyUrl": "https://sites.google.com/view/udubimpact",
    "addonUrl": "https://github.com/UDub-Impact/OData-Connector/blob/master/readme.md",
    "supportUrl": "https://github.com/googledatastudio/community-connectors/issues",
    "description": "Get your data from ODK central",
    "sources": ["npm"],
    "templates": {
      "default": "1twu0sHjqR5dELAPyGJcw4GS3-D0_NTrQ"
    }
  }
}

1 个答案:

答案 0 :(得分:0)

从2020年1月3日起,无法使用PATH_USER_PASS的问题已解决。我没有更改任何代码,但现在可以使用身份验证选项。