提问人:Ken Yurino 提问时间:10/30/2023 更新时间:11/1/2023 访问量:66
Google App Script:在 GAS 中运行 UrlFetchApp 时为 403
Google App Script : 403 when running UrlFetchApp in GAS
问:
我正在创建一个 API 来记录 Google 表单响应。
我已经在 GAS 中实现了以下代码,并在提交 Google 表单时使用 GAS 中的 UrlFetchApp 来运行 Endpoint。
执行 UrlFetchApp 时,有时它以 200 成功,有时以 403 失败,我想知道为什么会生成 403。 我正在使用 Google 表单和 API 服务器端执行的相同参数进行测试。
function onFormSubmit(e) {
const responses = e.response.getItemResponses();
const userId = responses[0].getResponse()
const questionnaireId = responses[1].getResponse()
Logger.log(`userId:${userId}`);
Logger.log(`questionnaireId:${questionnaireId}`);
if (!isUUID(userId) || !isUUID(questionnaireId)) {
Logger.log('Invalid UUID format.');
return;
}
const baseUrl = `https://example.com`;
const endpoint = `${baseUrl}/v1/users/${userId}/questionnaire`;
Logger.log(`endpoint: ${endpoint}`);
var payload = {
"questionnaire_id": questionnaireId,
};
var options = {
"method": "post",
"payload": JSON.stringify(payload),
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
},
"muteHttpExceptions": true
};
var response = UrlFetchApp.fetch(endpoint, options);
Logger.log(response.getContentText());
}
function isUUID(str) {
const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
return uuidPattern.test(str);
}
答:
评论
When executing UrlFetchApp, sometimes it succeeds with 200 and sometimes it fails with 403, and I would like to know why 403 is generated.
e
userId
questionnaireId
if (!userId || !questionnaireId) return;
const questionnaireId = responses[1].getResponse()
userId
questionnaireId
e
responses[1].getResponse()
endpoint
payload
questionnaireId
userId