【问题标题】:UrlFetchApp fetch a google apps scriptUrlFetchApp 获取谷歌应用脚​​本
【发布时间】:2014-02-04 02:16:32
【问题描述】:

我正在尝试使用 UrlFetchApp 从 Google 应用程序脚本获取另一个 Google 应用程序脚本。我试图使它尽可能基本,但它仍然给我一个错误。 第一个名为“frontend”的脚本作为用户执行,第二个脚本“backend”作为“backend”的所有者执行。

前端

var backend = 'https://script.google.com/macros/s/AKfycbwdwQdYYMwqofjEqFn3ozz_LqQ87qj7ZX19sYmelX9dUtP8aNxf/exec';

function doGet(e) {
 return UrlFetchApp.fetch(backend) 
}

后端

function doGet(e) {
  return doPost(e);
}

function doPost(e) {
  var app = UiApp.createApplication();
  app.add(app.createLabel('Backend'));
  return app;
}

前端发布here

额外信息

Logger.log(UrlFetchApp.getRequest(backend)) =>
{useIntranet=false, 
followRedirects=true, 
payload=, 
method=get,
validateHttpsCertificates=true, 
contentType=application/x-www-form-urlencoded,
url=https://script.google.com/macros/s/AKfycbwdwQdYYMwqofjEqFn3ozz_LqQ87qj7ZX19sYmelX9dUtP8aNxf/exec}
  • 改用 html 表单,我可以正确地将 POST/GET 参数从一个 google 脚本发送到另一个使用隐藏的输入元素来定义参数。
  • 如果我尝试使用 javascript - jquery ajax 执行 html 表单正在执行的操作,则请求会返回错误。

我很困惑为什么 google 脚本中的简单 html 表单可以请求另一个 google 脚本,但从 google 脚本到另一个 google 脚本的 javascript 请求被似乎是安全策略问题拒绝。

【问题讨论】:

    标签: google-apps-script fetch


    【解决方案1】:

    您没有说您是如何准确发布它们的,但我敢打赌您的后端没有发布以允许匿名用户。这样做。

    【讨论】:

    • 两者均以“任何人”的身份发布。我将后端更改为“任何人,包括匿名”,但它仍然导致“谷歌驱动器遇到错误页面......”
    • “匿名”真的很重要!由于脚本匿名执行 urlfetch。您可以在此处查看工作示例(尝试使用 html 服务而不是 os uiapp):stackoverflow.com/questions/21498552/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多