如何使用PHP的cURL调用Google Script Web App?
PHP cURL调用Google Apps Script Web App 解决方案
你的现有配置与代码
先整理下你已经完成的部分:
Google Apps Script 代码
function doGet() { return ContentService.createTextOutput("Hello World"); }
Web App 发布设置
- 执行身份:以你自身的身份执行
- 访问权限:允许域内所有用户运行
当前编写的PHP cURL代码(未完成)
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'google web app script link'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_FOLLOWLO...
完整可运行的PHP cURL代码
我帮你补全并优化了cURL代码,添加了必要的选项来处理Web App的重定向和结果返回:
<?php // 替换成你实际的Google Web App部署链接 $webAppUrl = 'https://script.google.com/macros/s/你的部署ID/exec'; $ch = curl_init($webAppUrl); // 核心配置选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 把响应结果返回给变量,而非直接输出 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 自动跟随Google Web App可能的重定向 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 生产环境建议保持开启,确保SSL安全 curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置超时时间,避免无限等待 // 执行请求 $response = curl_exec($ch); // 检查请求是否出错 if (curl_errno($ch)) { echo "cURL请求错误: " . curl_error($ch); } else { // 输出Web App返回的内容 echo "Web App响应: " . $response; } // 关闭cURL会话 curl_close($ch); ?>
关键注意事项
权限问题排查
因为你设置了「允许域内所有用户运行」,如果你的PHP服务器不在域内,或者调用时没有携带域内用户的身份凭证,会收到权限拒绝的响应。- 测试阶段可以临时把Web App访问权限改为「任何人,甚至匿名」,确认调用正常后再改回域内限制。
- 如果需要保持域内限制,你需要在cURL请求中添加OAuth2身份验证头(需要额外配置Google OAuth2客户端,获取访问令牌)。
Web App链接格式
确保你的链接是正确的部署链接,格式为:https://script.google.com/macros/s/[你的部署ID]/exec,不要使用编辑器里的测试链接。
内容的提问来源于stack exchange,提问作者Russ B
相关产品推荐
相关产品推荐

