Скрипт Google Apps и внешний API


Если я не ошибаюсь, в соответствии сдокументацией UrlFetch я должен быть в состоянии вызватьNew Basecamp API из скрипта Google Apps. Я подозреваю, что мое замешательство происходит из-за ошибки форматирования газа (и того факта, что я только начинаю все это). Я уже давно гуглил это. Вот что у меня есть и ошибка, которую я получаю от газа:

Микод в Газе:

function myFunction() {
  var url = "https://basecamp.com/******/api/v1/projects.json";
  var headers = {
                 "contentType": "application/json",
                 "headers":{ "User-Agent": "MY_APP_NAME",
                            "username:password" : "user:pass"},
                 "validateHttpsCertificates" :false
                 };

var response = UrlFetchApp.fetch(url, headers);
var text = response.getResponseCode();
Logger.log(text);
}

Сообщение об ошибке газа:

Request failed for https://basecamp.com/2166446/api/v1/projects.json returned code 401.
Server response: HTTP Basic: Access denied. (line 9, file "Code")

Я надеюсь, что это разумный вопрос, и благодарю вас за помощь.

1 8

1 ответ:

Правильный заголовок для HTTP Basic Authentication , который использует Utilities.base64Encode, заключается в следующем:

"headers": {
    "User-Agent": "MY_APP_NAME (App URL/your email address)",
    "Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)
},