【问题标题】:Calling Google Apps Script as webapp from AppEngine returns 405从 App Engine 调用 Google Apps 脚本作为网络应用程序返回 405
【发布时间】:2015-01-30 02:57:33
【问题描述】:

当我尝试调用作为 web 应用程序发布的 GAPPS 脚本时遇到问题。我正在尝试从 AppEngine 调用此服务。我正在使用 JSON Payload 对该脚本执行 POST 方法。 Urlfetch 选项设置为遵循重定向和 30 秒的超时。该脚本是公开的,并且对匿名用户开放。

在我本地的 GAE 开发机器上,脚本的 URLFetch 响应为 200,一切正常。

当我进入生产环境时,脚本会被执行,但会返回错误和 HTML 页面。 我在 URLFetch 上跟踪重定向,并将截止日期设置为 30 秒。

状态响应:405

回复文字: <!DOCTYPE html><html lang="en" ><head><meta name="description" content="Web word processing, presentations and spreadsheets"><link rel="shortcut icon" href="//ssl.gstatic.com/docs/common/drive_favicon1.ico"><title>Google Drive -- Page Not Found</title><link href="//fonts.googleapis.com/css?family=Open+Sans:300" rel="stylesheet" type="text/css"><style>/* Copyright 2014 Google Inc. All Rights Reserved. */ .goog-inline-block{position:relative;display:-moz-inline-box;display:inline-block}* html .goog-inline-block{display:inline}*:first-child+html .goog-inline-block{display:inline}#drive-logo{color:#91959c;font-family:"Open Sans",Arial,sans-serif;font-size:27px;font-weight:300;position:absolute;text-shadow:0 1px 1px white;white-space:nowrap}#drive-logo img{padding:0 0.4em 0 0;position:relative;top:2px;vertical-align:middle}#drive-logo a{color:#91959c;text-decoration:none}#drive-logo span.goog-inline-block{margin-top:2px;vertical-align:top}</style><style type="text/css">body {background-color: #fff; font-family: Arial,sans-serif; font-size: 13px; margin: 0; padding: 0;}a, a:link, a:visited {color: #112ABB;}</style><style type="text/css">.errorMessage {font-size: 12pt; font-weight: bold; line-height: 150%;}</style></head><body><div style="margin: auto; max-width: 750px;"><div style="margin: 80px 40px 20px 40px; position:relative; "><div style="position: absolute; top: -80px;"><h1 id="drive-logo"><a href="/"><img src="//www.google.com/images/logos/google_logo_41.png" width="116" height="41" alt="Google logo" ><span class="goog-inline-block">Drive</span></a></h1></div><div align="center"><p class="errorMessage" style="padding-top: 50px">Sorry, the file you have requested does not exist.</p><p> Please check the address and try again. </p><div style="background: #F0F6FF; border: 1px solid black; margin-top: 35px; padding: 10px 125px; width: 300px;"><p><strong>Get stuff done with Google Drive</strong></p><p>Apps in Google Drive make it easy to create, store and share online documents, spreadsheets, presentations and more.</p><p>Learn more at <a href="https://drive.google.com/start/apps">drive.google.com/start/apps</a>.</p></div></div></div></div></body></html>

  • 响应标头:Expires=Fri, 01 Jan 1990 00:00:00 GMT
  • 响应头:X-XSS-Protection=1;模式=块
  • 响应头:Alternate-Protocol=443:quic,p=0.02
  • 响应头:的Set-Cookie = NID = 67 = KSieONzrWKqWVEt8E4M2rUo_2nooEJ6qrh80LXTppGKYQux2iGFN-BHoqn7r5Yn0F4WaYtTbXDa6y2iAa3FtRBMAn6qf526lmPkZZek7nSQUvCv4wvthsDsL4P11Yx;域= .googleusercontent.com;路径= /;过期=星期二,02君2015 23时39分38秒GMT;仅Http LI>
  • 响应标头:X-Google-Cache-Control=remote-fetch
  • 响应头:Server=GSE
  • 响应头:Cache-Control=no-cache, no-store, max-age=0, must-revalidate
  • 响应头:Pragma=no-cache
  • 响应头:X-Content-Type-Options=nosniff
  • 响应头:X-Frame-Options=SAMEORIGIN
  • 响应标题:Date=Mon,2014 年 12 月 1 日 23:39:38 GMT
  • response header:P3P=CP="这不是 P3P 政策!有关详细信息,请参阅 http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657。"
  • 响应头:Allow=HEAD, GET
  • 响应头:x-chromium-appcache-fallback-override=disallow-fallback
  • 响应头:Via=HTTP/1.1 GWA
  • 响应头:Content-Type=text/html; charset=utf-8

有趣的是 - 没有那么多 - 脚本在大多数情况下都可以正常工作,但并非总是适用于所有用户。

您可以看到响应标头显示Allow=HEAD, GET,但我在脚本中实现了doPOst

尽管如此,我已经尝试通过重写整个内容以使用 GET 和一个参数来解决这个问题,但我遇到了类似的问题!

长话短说:在 GAE 本地开发服务器上完美运行,状态响应为 200,部署到 GAE 时响应错误且行为不稳定>

【问题讨论】:

  • 您使用的是 Python 还是 Java AppEngine SDK?
  • @user3355018 Java GAE SDK...
  • 我使用here 中描述的代码片段对 AppScript 进行 POST 调用,并且运行良好。
  • @user3355018 你称之为 Gapps 脚本吗?部署在 GAE 或本地 devserver 上?你用 POST 发送有效载荷还是 GET ?
  • 我将带有 POST 请求的 json 有效负载(在本地开发服务器和 GAE 中都有效)发送到部署为 Web 应用程序的 AppScript。

标签: google-app-engine google-apps-script urlfetch


【解决方案1】:

当作为 webapp 运行时,GAS 非常挑剔。有时将脚本放入 Google Drive 上的公共文件夹会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-06
  • 2018-06-04
相关资源
最近更新 更多