Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Google Apps Script web app response for POST request acts weird

I’m making a small Apps Script to create a calendar event via POST request.

Here is the code:

function doPost(e) {
    const accessKey = 'l056SH7REYsuli**************************************************DIX0e08XvsBAtzA2eSJg';
    let result;
    let params = JSON.parse(e.postData.contents);
    let event = params.event;
    let calendarId = params.calendarId;
    let token = params.token;
    let method = params.method;
    if(token === accessKey) {
        try {
            eventResult = Calendar.Events.insert(event, calendarId);
            result = { 'Event ID: ' : eventResult.id }
            } catch (err) {
            result = { 
                'Failed with error %s': err.message,
                'Event contents': event
                    }
            }
    } else {
        result = {
            'status': 'Forbidden',
            'statusCode': 403,
            'message': 'You do not have access to this resource.'
        }
    }
    return ContentService.createTextOutput(JSON.stringify(result))
}

It works perfect with Postman:
enter image description here

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

But when I do curl:
curl –location –request POST ‘https://script.google.com/macros/s/AKfycbyh7n3YeE-HiNAIA8wi9HAVsaLBUv5ceJu-k7yxL4D8mSm9EXQ4wQc_ctqipFlAR4SqfA/exec’
–header ‘Content-Type: application/json’
–data-raw ‘{
"token": "l056SH7REYs************3IYXeiECDIX0e08XvsBAtzA2eSJg",
"calendarId": "c_9bae2a34a108dd90
5ee00d@group.calendar.google.com",
"event": {
"summary":"TEst from postman",
"description":"Abyrvalg",
"start": {
"date": "2022-11-28"
},
"end": {
"date": "2022-11-28"
},
"colorID": 9
}
}’
enter image description here
I get HTML instead of JSON.

Calendar event is getting created however. But I need the event ID as a result.
Can anyone share an idea, please?

Googling did not give me any results yet, but I’m not stopping.

>Solution :

From your following tested curl command,

curl --location --request POST 'https://script.google.com/macros/s/AKfycbyh7n3YeE-HiNAIA8wi9HAVsaLBUv5ceJu-k7yxL4D8mSm9EXQ4wQc_ctqipFlAR4SqfA/exec'
--header 'Content-Type: application/json'
--data-raw '{ "token": "l056SH7REYs************3IYXeiECDIX0e08XvsBAtzA2eSJg", "calendarId": "c_9bae2a34a108dd905ee00d@group.calendar.google.com", "event": { "summary":"TEst from postman", "description":"Abyrvalg", "start": { "date": "2022-11-28" }, "end": { "date": "2022-11-28" }, "colorID": 9 } }'

In this case, how about the following modification?

Modified curl command:

curl --location 'https://script.google.com/macros/s/AKfycbyh7n3YeE-HiNAIA8wi9HAVsaLBUv5ceJu-k7yxL4D8mSm9EXQ4wQc_ctqipFlAR4SqfA/exec' \
--data-raw '{ "token": "l056SH7REYs************3IYXeiECDIX0e08XvsBAtzA2eSJg", "calendarId": "c_9bae2a34a108dd905ee00d@group.calendar.google.com", "event": { "summary":"TEst from postman", "description":"Abyrvalg", "start": { "date": "2022-11-28" }, "end": { "date": "2022-11-28" }, "colorID": 9 } }'

Reference:

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading