gpt4 book ai didi

google-apps-script - "302 Moved Temporarily"模式下出现错误 "Test as add-on"(电报)

转载 作者:行者123 更新时间:2023-12-03 08:14:52 28 4
gpt4 key购买 nike

  1. 电子表格包含项目 1,部署为具有以下权限的 Web 应用:执行身份:我,有权访问的人:任何人

网络应用

function doPost(e) {
myLog('Received from Addon: ' + JSON.stringify(e));
// console.log('parameters from caller ' + JSON.stringify(e));
return ContentService.createTextOutput(JSON.stringify(e));
}

Webhook aTelegram-bot 和此 Web 应用程序已设置。

  • 我正在使用此电子表格来测试(作为附加组件)另一个项目 2。
  • 附加组件

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

    Here是该过程的短视频(英文字幕)。

  • 我运行 sendPost() ,一切正常。项目 2 将数据发送到 web 应用程序,然后 web 应用程序返回数据。由于这是一个容器绑定(bind)脚本而不是独立脚本,因此我无法查看 GCC 记录器中的日志。因此,我在自定义记录器中查看它们,并且条目已正常添加。
  • 此外https://api.telegram.org/bot{API_token}/getWebhookInfo显示没有错误:

    {"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.***.***"}}
  • 现在我正在通过与机器人的聊天发送消息。 Web 应用程序中的 doPost(e) 函数接受它并将其写入电子表格。然而,一切并不局限于一条消息。来自机器人的请求不断出现,记录器在电子表格中创建越来越多的新行。直到我重新部署 web 应用程序并将 doPost () 函数注释掉为止,才会发生这种情况。我试图弄清楚这是否是一个有限循环。我的耐心只够进行 20 次这样的迭代,因为结果,消息开始以大约 1 分钟的间隔重复。然后我必须重新安装 webhook。
  • 无论如何,它都会干扰插件的测试。

  • GetWebhookInfo 现在显示“Webhook 响应错误: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":"来自 webhook 的错误响应: 302 暂时移动", "max_connections":40,"ip_address":"142.250.1***.***"}}

  • 谷歌搜索揭示了几个可能的原因。来自 url to the script has changedMITM in your network 。我不太相信 MITM,我认为这是因为电子表格在测试模式下作为附加组件打开,并且 web 应用程序的 URL 在此模式下已更改。如果是这样,那么我不确定这是否是测试系统的正确行为。理论上,这种情况应该已经提供,并且 webap url 应该保持不变。但也许我错了,原因不同,所以
  • 问题:有没有人遇到过这种情况,并会建议一种解决方法,如何在这种情况下将脚本作为插件进行测试?

    最佳答案

    指重定向。如果ContentService is used, Google temporarily redirects the resource to a another domain to serve the content 。使用 HtmlService 时不会执行此重定向。因此,如果问题与重定向有关,请改用 HtmlService

    关于google-apps-script - "302 Moved Temporarily"模式下出现错误 "Test as add-on"(电报),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69769477/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com