【问题标题】:Google Apps Script web app response for POST request acts weirdGoogle Apps Script 网络应用对 POST 请求的响应行为很奇怪
【发布时间】:2022-11-24 21:14:13
【问题描述】:

我正在制作一个小的 Apps 脚本来通过 POST 请求创建一个日历事件。

这是代码:

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))
}

它与 Postman 完美配合: enter image description here

但是当我卷曲时: curl --location --request POST 'https://script.google.com/macros/s/AKfycbyh7n3YeE-HiNAIA8wi9HAVsaLBUv5ceJu-k7yxL4D8mSm9EXQ4wQc_ctqipFlAR4SqfA/exec'
--header 'Content-Type: application/json'
--数据原始'{ “令牌”:“l056SH7REYs************3IYXeiECDIX0e08XvsBATzA2eSJg", “calendarId”:“c_9bae2a34a108dd905ee00d@group.calendar.google.com", “事件”: { “摘要”:“来自邮递员的测试”, “描述”:“阿比瓦尔格”, “开始”: { “日期”:“2022-11-28” }, “结尾”: { “日期”:“2022-11-28” }, “颜色ID”:9 } }' enter image description here 我得到的是 HTML 而不是 JSON。

但是,正在创建日历事件。但是我因此需要事件 ID。 任何人都可以分享一个想法吗?

谷歌搜索还没有给我任何结果,但我不会停止。

【问题讨论】:

  • 关于But when I do curl: enter image description here I get HTML instead of JSON.,能提供一下你测试过的curl命令吗?
  • 你好,我编辑了帖子。这个curl基本上是从postman sn-p抄来的。
  • 谢谢你的回复。在i.stack.imgur.com/uVNfy.png 的示例图片中,我可以问一下 HTML 中 title 标签的值吗?我听不懂语言。我为此道歉。
  • 这是来自 Google Disk 的回复,说找不到文件。
  • 谢谢你的回复。从您的回复中,我提出了修改后的 curl 命令作为答案。你能确认一下吗?

标签: google-apps-script curl google-calendar-api


【解决方案1】:

从以下经过测试的 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_9bae2a34a108dd905ee00d@group.calendar.google.com", "event": { "summary":"TEst from postman", "description":"Abyrvalg", "start": { "date": "2022-11-28" }, "end": { "date": "2022-11-28" }, "colorID": 9 } }'

在这种情况下,如何进行以下修改?

修改后的 curl 命令:

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 } }'

参考:

【讨论】:

  • 非常感谢!有用。
  • @Sergei Lavrov 感谢您的回复和测试。很高兴您的问题得到解决。也谢谢你。
猜你喜欢
  • 2019-05-20
  • 1970-01-01
  • 2017-09-17
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
相关资源
最近更新 更多