2013-05-27 3 views
0

Я пытаюсь получить доступ к Pingdom API в Google Apps сценарий следующий этого примера: https://developers.google.com/apps-script/external_apisНеожиданная ошибка UrlFetchApp.fetch в Google Apps сценарий

query = 'credits'; 
var username = 'foo'; 
var password = 'bar'; 
var credentials = username+':'+password; 
var url = 'https://'+credentials+'@api.pingdom.com/api/2.0/'+encodeURIComponent(query); 
var headers = { 
    "App-Key": "abcd", 
}; 
var options = { 
    "method": "get", 
    "headers": headers, 
    'validateHttpsCertificates':false 
}; 
Logger.log(url); 
var response = UrlFetchApp.fetch(url); 

выполнения этого кода порывает с ошибкой ниже:

Unexpected error: https://foo:[email protected]/api/2.0/credits (line 17, file "Code") Dismiss

Если я копирую/вставляю вышеуказанный URL-адрес в браузер, он работает (т.е. я получаю «Отсутствующий ключ приложения» из API-интерфейса pingdom, который подтверждает правильность ввода имени пользователя и пароля, иначе вы получите Ошибка недопустимых учетных данных). Я пробовал с encodeURIComponent на credentials, и я получаю ту же ошибку. 'muteHttpExceptions':true тоже не помогает.

Любая идея, что может вызвать ошибку?

ответ

4

Похоже, что входная информация в URL-адресе вызывает ошибку в UrlFetchApp. Пожалуйста, напишите ошибку в нашем Issue Tracker. В то же время, введите информацию для входа в заголовок авторизации, и она должна работать правильно.

var response = UrlFetchApp.fetch(url, { 
    headers: { 
    'Authorization': 'Basic ' + Utilities.base64Encode(username + ':' + password) 
    } 
}); 
+0

выпуск поднял (https://code.google.com/p/google-apps-script-issues/issues/detail?id=2859). К сожалению, реализация Pingdom'ом «HTTP» Basic кажется плохим: тестирование с завиванием, когда учетные данные предоставлены в «URL», работает, когда они предоставляются через заголовок «Авторизация», «API» возвращает «Пользователь» credentials missing' error (поэтому, когда я сосать с помощью скрипта Google Apps, поскольку я не могу использовать учетные данные в 'URL'). – Max

Смежные вопросы