If I am not mistaken, as per UrlFetch Documentation I should be able to call the New Basecamp API from within Google Apps Script. I suspect my confusion comes from a formatting GAS mistake (and the fact that I am just beginning all this). I have googled this a long while. This is what I have and the error I get back from GAS:
myCode in GAS:
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);
}
GAS Error Message:
Request failed for https://basecamp.com/2166446/api/v1/projects.json returned code 401.
Server response: HTTP Basic: Access denied. (line 9, file "Code")
I hope this is a reasonable question and thank you for the help.
The Google Apps Script API lets you programmatically create, modify, and deploy Apps Script projects—actions that otherwise require you to use the Apps Script editor. Your apps can use the API to manage your script projects, create and deploy new script versions, and monitor script executions.
Once you've set up your API to Google Sheets connection, click Save And Run to get data to your spreadsheet.
The correct header for HTTP Basic Authentication, which makes use of Utilities.base64Encode
, is as follows:
"headers": {
"User-Agent": "MY_APP_NAME (App URL/your email address)",
"Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)
},
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With