gpt4 book ai didi

google-apps-script - ScriptApp.getService().getUrl() 的行为似乎已经改变

转载 作者:行者123 更新时间:2023-12-03 17:27:55 25 4
gpt4 key购买 nike

摘要
我一直在用ScriptApp.getService().getUrl()在我的 Google Apps 脚本项目中成功获取当前实例 (dev|prod) 一段时间了。截至昨天,返回值似乎完全取决于 URL 是否以 /dev 结尾。或不。有没有其他人看到过这个问题或有解决方法?
以前的行为 getUrl总是会返回 https://script.google.com/a/dustinluck.com/macros/s/{deployment-id}/exec .部署 ID 正是我在浏览器的 URL 栏中看到的。
当前行为 getUrl如果浏览器 URL 栏中的地址以 /dev 结尾,则始终返回开发 URL或 prod URL(如果没有)。这在第一次显示 Web 表单时不是问题,因为 URL 正确以 /dev 结尾。但是,似乎在提交表单并使用 google.script.run 调用 Google Apps 脚本代码时,URL 包含 /callback因此 getEnv计算结果为 prod .
重现示例代码
该应用程序发布为以我的身份执行并允许匿名访问,但是,当发布为用户访问 Web 应用程序和/或限制对 Web 应用程序的访问时,我看到了相同的行为。
代码.gs

function doGet(e) {
var pageHtmlTemplate = HtmlService.createTemplateFromFile("default");
pageHtmlTemplate.env = getEnv();
return pageHtmlTemplate.evaluate();
}

function getEnv() {
var devId = 'AKfycbwou0odFWX6II6YaeSaSOaXF4faYrzJ5XygssntdnI';
var prodId = 'AKfycbxO20AYwEDPvdRsXu_K9pOb-E_iWRV12Wuv3TCApF53vDeuQpU';
var currUrl = ScriptApp.getService().getUrl();
var env = "unknown";
if (currUrl.indexOf(devId) != -1) {
env = "dev";
} else if (currUrl.indexOf(prodId) != -1) {
env = "prod";
}

return env + " (" + currUrl + ")";
}
default.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
</head>
<body>
<h1>Env on load</h1>
<?= env ?>

<h1>Env on callback</h1>
<div id="test">
</div>
</body>
<script>
$(document).ready(function() {
google.script.run.withSuccessHandler(success).getEnv();
});

function success(env) {
$("#test").html(env);
}
</script>
</html>
测试 URL
这两个都有 prod 脚本 ID,但取决于它是否以 /dev 结尾。或 /exec ,结果 getUrl改变。
  • https://script.google.com/a/dustinluck.com/macros/s/AKfycbxO20AYwEDPvdRsXu_K9pOb-E_iWRV12Wuv3TCApF53vDeuQpU/dev
  • https://script.google.com/a/dustinluck.com/macros/s/AKfycbxO20AYwEDPvdRsXu_K9pOb-E_iWRV12Wuv3TCApF53vDeuQpU/exec
  • 最佳答案

    由 OP 发布为 "update" to the question

    Update

    (Apr 17, 2020) After republishing this script, the previous (correct) behavior returned. I can only guess that some recent updates from Google fixed this issue.

    关于google-apps-script - ScriptApp.getService().getUrl() 的行为似乎已经改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58843993/

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