有人知道如何从PHP调用在谷歌AppScript编写的web应用程序吗?
我已经发布了我的应用程序以我的身份运行,并使其可供"所有人"使用。测试url如下所示:
https://script.google.com/macros/s/xXxXxX/dev?Jobno=11&Pickupfrom=Aa&Deliverto=bb&Readyby=22&Deliverby=33
此链接将新记录附加到google电子表格中。该链接只有在我在登录到谷歌的浏览器中手动提交时才有效。如果我退出谷歌,它会把我转到一个登录页面。这对我来说毫无意义。我不明白为什么要强制认证。
任何想法?
描述的行为是一个特性:
https://developers.google.com/apps-script/guides/content重定向
<标题> 重定向出于安全原因,内容服务返回的内容不是从script.google.com提供的,而是重定向到script.googleusercontent.com的一次性URL。这意味着如果你使用Content服务将数据返回给另一个应用程序必须确保HTTP客户端被配置为遵循重定向。例如,在cURL命令行实用程序中,添加标志-L。检查请参阅HTTP客户端的文档,了解如何启用此行为
标题>
你只需要发送一个header来跟随url
curl_setopt($url, CURLOPT_FOLLOWLOCATION, true);
其中$url是用curl_init('apps script url')初始化的url,像这样:
$url = curl_init('https://script.google.com/YOUR_APPS_SCRIPT_URL');
添加行:
curl_setopt($url, CURLOPT_FOLLOWLOCATION, true);
只在发送其他重要的标头之后
听起来好像和它的发布方式有关。重新发布并将"谁有权访问该应用程序"更改为"任何人,甚至匿名",您应该解决问题。
编辑:在发布
你应该使用"exec"版本的应用,而不是"dev"版本的应用。
并且,正如在另一个答案中提到的,不要忘记保存一个版本并使用这个最新版本更新您的部署。
"dev"版本仅用于测试,并且只有脚本编辑器登录时才能访问。
你的url应该是这样的:
https://script.google.com/macros/s/xXxXxX/exec?Jobno=11&Pickupfrom=Aa&Deliverto=bb&Readyby=22&Deliverby=33