Я работаю над тем, что должно было быть очень маленьким и быстрым проектом, но он дает мне ад.Я работаю над соединителем 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-адрес правильный, мой токен правильный.Я просто не могу получить данные в этом куске кода.Это первый раз, когда я использую это, поэтому я получил большую часть своего кода из учебников.Я неправильно делаю запрос?Если запрос верен, это будет странно, потому что почтальон может получить эти данные.