首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“测试附加”模式中的"302临时移动“错误(电报)

“测试附加”模式中的"302临时移动“错误(电报)
EN

Stack Overflow用户
提问于 2021-10-29 13:11:07
回答 1查看 713关注 0票数 1
  1. 电子表格包含项目1,部署为具有权限的webapp:Execute as: Me, Who has access: Anyone

Webapp

代码语言:javascript
运行
复制
function doPost(e) {
  myLog('Received from Addon: ' + JSON.stringify(e));
  // console.log('parameters from caller ' + JSON.stringify(e));
  return ContentService.createTextOutput(JSON.stringify(e));
}

一个网络钩子,一个电报-机器人和这个网络应用程序被设置。

  1. 我正在使用这个电子表格测试(作为附加)的另一个项目2。

加载项

代码语言:javascript
运行
复制
function sendPost() {
  var sheetURL = SpreadsheetApp.getActiveSpreadsheet().getUrl();

  // var webAppUrl = "https://script.google.com/macros/s/#####/exec"; // 7: Part_1 - WebApp: My
  var webAppUrl = "https://script.google.com/macros/s/###/exec"; // 7: Part_1 - WebApp: Tester

  // var auth = ScriptApp.getOAuthToken();
  // var header = { 'Authorization': 'Bearer ' + auth };
  var payload = { scriptName: 'updateData', sheetURL: 'sheetURL' };
  var options = {
    method: 'post',
    // headers: header,
    muteHttpExceptions: true,
    payload: payload
  };

  var resp = UrlFetchApp.fetch(webAppUrl, options);
  var respCode = resp.getResponseCode();
  console.log('resp: ' + respCode);
  myLog(respCode);
  var respTxt = resp.getContentText();
  myLog('Response from webApp: ' + respTxt);
  console.log('resp: ' + respTxt);
}

这里是这一过程的短视频(n-字幕)。

  1. 我运行sendPost(),一切正常。项目2将数据发送到webapp,该应用程序会返回数据。因为这是一个容器脚本,而不是一个独立的脚本,所以我不能看GCC记录器中的日志。因此,我在自定义记录器中查看它们,并正常地添加条目。

此外,https://api.telegram.org/bot{API_token}/getWebhookInfo还表明没有错误:

代码语言:javascript
运行
复制
{"ok":true,"result": {"url":"https://script.google.com/macros/s/###/exec", "has_custom_certificate":false, "pending_update_count":0, "max_connections":40,"ip_address":"142.250.***.***"}}
  1. 现在我从与机器人的聊天中发出一个信息。webapp中的doPost(e)函数接受它并将其写入电子表格。然而,每件事都不局限于一条信息。来自bot的请求来来去去,记录器在电子表格中创建了越来越多的新行。这种情况直到我用注释掉的doPost ()函数重新部署webapp为止。我试着弄清楚这是否是一个有限的循环。我的耐心只够重复20次这样的迭代,因为结果,消息开始重复大约1分钟。那我就得重新安装网络钩子。

在任何情况下,它都会干扰对加载项的测试。

  1. GetWebhookInfo现在显示存在一个“来自web钩子的错误响应:302个临时移动”错误:

{"ok":true,"result": {"url":"https://script.google.com/macros/s/###/exec", "has_custom_certificate":false, "pending_update_count":1, "last_error_date":1635501472, "last_error_message":"Wrong response from the webhook: 302 Moved Temporarily", "max_connections":40,"ip_address":"142.250.1***.***"}}

  1. 谷歌透露了几个可能的原因。从脚本的url已更改MITM在您的网络中。我并不真正相信MITM,我认为这是因为电子表格在测试模式下是以附加的方式打开的,并且webapp的URL在这种模式下已经改变了。如果是这样的话,那么我不确定这是否是测试系统的正确行为。从理论上讲,这种情况应该得到解决,而webap网址应该保持不变。但也许我错了,原因也不一样,所以

问题:有没有人遇到过这样的情况,并会建议如何在这种情况下测试脚本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-30 17:27:23

http-状态-代码-302指的是重定向。如果使用时,Google将资源临时重定向到另一个域以服务内容。.使用HtmlService时不执行此重定向。因此,如果问题与重定向有关,则使用HtmlService代替。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69769477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档