Следим за балансом «Яндекс.Директа» в «Google Таблицах»

В этом материале расскажем, как получить баланс аккаунта Яндекс Директ формулой в Google Таблицах и отправлять уведомления об остатке по расписанию на почту

4

Помогите пожалуйста решить проблему: TypeError: Cannot set properties of undefined (setting 'Logins') (строка 137).

Ответить

Нашел решение:
Переходим в Расширение - Apps Scripts, ищем функцию YandexDirectBalance.
Заменяем весь код этой функции на:

function YandexDirectBalance(yaToken, login) {
login = login.toString();
if (login.match(/;/g)) {
login = login.split(';');
} else {
login = [login];
}

var fireURL = 'https://api.direct.yandex.ru/live/v4/json/';
var data = {
"method": "AccountManagement",
"token": yaToken,
"param": {
"Action": "Get",
"SelectionCriteria": {
"Logins": login
}
}
};

var options = {
'method': 'post',
'headers': {
'Content-Type': 'application/json; charset=utf-8'
},
'payload': JSON.stringify(data),
'muteHttpExceptions': true
};

var response = UrlFetchApp.fetch(fireURL, options);

if (response.getContentText().toString().toLowerCase().match(/.*error.*/g)) {
errorHandler(response);
}

if (response.getResponseCode() === 200) {
try {
return responseHandler(response);
} catch(e) {
data.param['SelectionCriteria']['Logins'] = login;
options.payload = JSON.stringify(data);
response = UrlFetchApp.fetch(fireURL, options);
return responseHandler(response);
}
}
}

1
Ответить