Углубленная отладка для UrlFetchApp.fetch ()? Возвращение - «Адрес недоступен» - PullRequest
0 голосов
/ 31 августа 2018

Редактировать - !!! Смотрите ответ за ответ, это не проблема !!!

Попытка получить данные из API во время сценариев на листах Google не удалась с ошибкой Address unavailable: https://url.com/api/endpoint - Однако я успешно могу получить данные из конечной точки, используя точно такой же запрос через почтальона.

Я попытался добавить muteHttpExceptions: true к заголовкам, но он не возвращает никаких дополнительных деталей. Можно ли как-то найти более точно, в какой момент он терпит неудачу?

Запрос отправляется, когда пользователь нажимает кнопку «Запустить импортер», которая добавляется в электронную таблицу через скрипт приложения. Фрагменты кода ниже:

// Appscript.json
    ...
    "urlFetchWhitelist": [
      "https://url.com/"
    ],
    ...

// Code.gs
function onOpen(){
    spreadsheet.addMenu("Importer", [{
        name : "Run importer",
        functionName : "runImporter"
    }]);
}

...
function runImporter(){
    ...
    ApiModule.getAuth();
    ...
}

// Api Module
var getAuth = function() {
    var payload = {};
    payload.grant_type = "password";
    payload.username = properties.getProperty('username');
    payload.password = properties.getProperty('password');
    payload.client_id = properties.getProperty('id');
    payload.client_secret = properties.getProperty('secret');

    payload = JSON.stringify(payload);

    try {
        var url = properties.getProperty('url') + "/api/endpoint";
        var headers = {
            "Content-Type": "application/json"
        };

        var options = {
            "method":"POST",
            "contentType" : "application/json",
            "headers": headers,
            "payload" : payload
        };

        var response = UrlFetchApp.fetch(url, options);
        response = JSON.parse(response);
        return response;
    } catch (error) {
        spreadsheet.toast(error, 'Error!');
        throw new Error(error);
    }
};

Ошибка получена - ошибка: исключение: адрес недоступен: https://url.com/api/endpoint

1 Ответ

0 голосов
/ 31 августа 2018

Подожди, я идиот. Я полностью забыл, что URL-адрес, на который я пытался попасть, был заблокирован набором IP-адресов, так как скрипт приложения работает на серверах Googles, он никогда не достигнет API.

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