Соединитель Google не может авторизоваться - PullRequest
0 голосов
/ 22 февраля 2019

Я работаю над тем, что должно было быть очень маленьким и быстрым проектом, но он дает мне ад.Я работаю над соединителем Google, чтобы получить данные из Magento в Google Data Studio.Теперь я могу получить незащищенные данные, но как только я хочу получить данные за конечной точкой авторизации, он просто ничего не возвращает.Кажется, я не могу этого понять.

var KEY_SIGNATURE = "Hidden.key";


function getAuthType() {
  return {
   type: 'KEY'
  };
}

function resetAuth() {
  var userProperties = PropertiesService.getUserProperties();
  userProperties.deleteProperty(KEY_SIGNATURE);
}

function isAuthValid() {
  var userProperties = PropertiesService.getUserProperties();
  var key = userProperties.getProperty(KEY_SIGNATURE);
  return validateKey(key);
}

function setCredentials(request) {
  var key = request.key;

  var validKey = validateKey(key);
  if (!validKey) {
    return {
    errorCode: 'INVALID_CREDENTIALS'
    };
  }
  var userProperties = PropertiesService.getUserProperties();
  userProperties.setProperty(KEY_SIGNATURE, key);
  return {
    errorCode: 'NONE'
  };
}

function validateKey(key) {
  if(key!=null && key !=undefined){
    return true;
  }
 return false;
}

function fetchData(request, startDate) {
try{
  var userProperties = PropertiesService.getUserProperties()

  var headers = {
    "Authorization" : "Bearer token123"
  };

  var options = {
    "method":"GET",
    "headers":headers
  };

  var url = 'www.mymagentowebsite.com/index.php/rest/V1/shipments?searchCriteria[filter_groups][0][filters][0][field]=created_at&searchCriteria[filter_groups][0][filters][0][value]=' + startDate + ' 00:00:00&searchCriteria[filter_groups][0][filters][0][condition_type]=gt';
  console.log(url);
  var data = [];
  console.log(JSON.stringify(options));
  var response = UrlFetchApp.fetch(url,options);
  console.log('response');
  var parsedResponse = JSON.parse(response.getContentText());
  }catch(e){
    throw new Error("DS_USER: Unable to fetch your data: " + e);
  }
  console.log(JSON.stringify(parsedResponse)); <--This is not giving me any log with an authorized request
  return parsedResponse;
}

function getData(request) {
  var startDate = request.dateRange.startDate;

  // Prepare the schema for the fields requested.
  var dataSchema = [];
  var fixedSchema = getSchema().schema;
  request.fields.forEach(function(field) {
    for (var i = 0; i < fixedSchema.length; i++) {
      if (fixedSchema[i].name == field.name) {
        dataSchema.push(fixedSchema[i]);
        break;
      }
    }
  });

  // Prepare the tabular data.
  var response = [];
  var data = [];  
  data = fetchData(request, startDate);
  //do stuff with that data
  });

  return {
    schema: dataSchema,
    rows: response
  };
}

Я могу сделать звонок в пределах почтальона очень хорошо, мой URL-адрес правильный, мой токен правильный.Я просто не могу получить данные в этом куске кода.Это первый раз, когда я использую это, поэтому я получил большую часть своего кода из учебников.Я неправильно делаю запрос?Если запрос верен, это будет странно, потому что почтальон может получить эти данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...