有谁知道如何从PHP调用用Google AppScript编写的Web应用程序?
我已发布我的应用程序以像我一样运行并将其提供给“所有人”。测试网址如下所示:
https://script.google.com/macros/s/xXxXxX/dev?Jobno=11&Pickupfrom=Aa&Deliverto=bb&Readyby=22&Deliverby=33
此链接会将新记录添加到Google电子表格中。该链接仅在我在登录Google的浏览器中手动提交时才有效。如果我退出谷歌,它会将我转发到登录页面。这对我来说毫无意义。我不明白为什么它强制进行身份验证。
有什么想法吗?
答案 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);
仅在您发送其他重要标头之后