簡體   English   中英

“作為附加組件測試”模式下的錯誤“302 臨時移動”(電報)

[英]Error "302 Moved Temporarily" in "Test as add-on" mode (Telegram)

  1. 該電子表格包含項目 1,部署為具有以下權限的 web 應用程序: Execute as: Me, Who has access: Anyone

網頁應用

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 和這個 webapp 設置。

  1. 我正在使用此電子表格來測試(作為附件)另一個項目 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);
}

是該過程的簡短視頻(英文字幕)。

  1. 我運行 sendPost() 並且一切正常。 項目 2 將數據發送到 webapp,后者返回它。 由於這是一個容器綁定腳本而不是獨立腳本,因此我無法查看 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.***.***"}}
  1. 現在我從與機器人的聊天中發送消息。 webapp 中的 doPost(e) 函數接受它並將其寫入電子表格。 然而,一切不限於一條消息。 來自機器人的請求來來去去,記錄器在電子表格中創建越來越多的新行。 直到我重新部署 webapp 並注釋掉 doPost () 函數時才會發生這種情況。 我試圖弄清楚這是否是一個有限循環。 我的耐心只夠進行 20 次這樣的迭代,因為結果,消息開始以大約 1 分鍾的間隔重復。 然后我必須重新安裝 webhook。

在任何情況下,它都會干擾測試插件。

  1. 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":"Wrong response from the webhook: 302 Moved Temporarily", "max_connections":40,"ip_address":"142.250.1***.***"}}

  1. 谷歌搜索揭示了幾個可能的原因。 url 到腳本已更改您網絡中的 MITM 我並不真正相信 MITM,我想這是因為電子表格在測試模式下作為插件打開,並且 webapp 的 URL 在這種模式下發生了變化。 如果是這樣,那么我不確定這是否是測試系統的正確行為。 理論上應該已經提供了這種情況,並且webap url應該保持不變。 但也許我錯了,原因不同,所以

問題:有沒有人遇到過這種情況,並會建議如何在這種情況下將腳本作為插件進行測試的解決方法?

指的是重定向。 如果使用ContentService ,Google 會臨時將資源重定向到另一個域以提供內容 使用HtmlService時不執行此重定向。 因此,如果問題與重定向有關,請改用HtmlService

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM