PHP到Google WebApp返回“<h1>暂时移动</h1>文档已移动”

时间:2014-06-23 00:27:11

标签: php html authentication google-apps-script google-sheets

有谁知道如何从PHP调用用Google AppScript编写的Web应用程序?

我已发布我的应用程序以像我一样运行并将其提供给“所有人”。测试网址如下所示:

https://script.google.com/macros/s/xXxXxX/dev?Jobno=11&Pickupfrom=Aa&Deliverto=bb&Readyby=22&Deliverby=33

此链接会将新记录添加到Google电子表格中。该链接仅在我在登录Google的浏览器中手动提交时才有效。如果我退出谷歌,它会将我转发到登录页面。这对我来说毫无意义。我不明白为什么它强制进行身份验证。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

所描述的行为是一个特征:

https://developers.google.com/apps-script/guides/content#redirects

  

重定向

     

出于安全考虑,内容服务返回的内容不是从script.google.com提供,而是重定向到   网址为script.googleusercontent.com的一次性URL。这意味着,如果您   使用内容服务将数据返回到另一个应用程序,您   必须确保将HTTP客户端配置为遵循重定向。   例如,在cURL命令行实用程序中,添加标志-L。校验   有关HTTP客户端的文档,以获取有关如何   启用此行为。

答案 1 :(得分:0)

听起来它与它的发布方式有关。重新发布并将“谁有权访问该应用”更改为“任何人,甚至是匿名”,您应该解决此问题。

编辑:还记得在发布之前保存新版本

答案 2 :(得分:0)

您应该使用应用的“exec”版本,而不是“dev”版本。

并且,正如其他答案所述,请不要忘记保存版本并使用此最新版本更新部署。

“dev”版本仅用于测试,只有在脚本编辑登录后才能访问。

您的网址应如下所示:

https://script.google.com/macros/s/xXxXxX/exec?Jobno=11&Pickupfrom=Aa&Deliverto=bb&Readyby=22&Deliverby=33

答案 3 :(得分:0)

您只需要发送一个标头即可跟随网址

 curl_setopt($url, CURLOPT_FOLLOWLOCATION, true);

其中 $url 是您使用 curl_init('apps script url') 初始化的网址,如下所示:

$url = curl_init('https://script.google.com/YOUR_APPS_SCRIPT_URL');

添加行:

curl_setopt($url, CURLOPT_FOLLOWLOCATION, true);

仅在您发送其他重要标头之后