首页 > 解决方案 > Google Script 不与 PHP API 交互

问题描述

我正在尝试使用 Google Apps 脚本将我的 Google Sheet 连接到 PHP 脚本。UrlFetchApp这需要使用该功能发送有效负载。而且,这就是 Script 和 PHP 之间的连接出错的地方。

连接有效,当我将echoPHP 脚本中的值替换为非变量时,会有响应。另外,我的响应代码是200. 但是,发送或读取我的有效载荷是问题所在。

谷歌应用脚​​本:

var payload = {"A": "12345"};
var url = 'myurl/stats.php'
var response = UrlFetchApp.fetch(
        url,
        {
          "method": "GET",
          "contentType": "application/json",
          "payload": JSON.stringify(payload),
        }
      );
var responseCode = response.getResponseCode();
var responseBody = response.getContentText();

Logger.log(responseCode);
Logger.log(responseBody); 

PHP:

<?php 
$A = $_GET["A"];
echo json_encode("Hello: ".$A);
?>

注意:使用浏览器,此 PHP 脚本可以运行。

我希望responseBody是,"Hello: 12345"但实际输出是"Hello: "

标签: phpgoogle-apps-script

解决方案


简单修改您的 php 代码以发送响应

var payload = {"A": "12345"};
var url = 'myurl/stats.php?A=' + payload.A;
var response = UrlFetchApp.fetch(
        url,
        {
          "method": "GET",
          "contentType": "application/json",
          "payload": JSON.stringify(payload),
        }
      );
var responseCode = response.getResponseCode();
var responseBody = response.getContentText();

Logger.log(responseCode);
Logger.log(responseBody); 


<?php 
$A = $_GET["A"];
echo json_encode(["Hello" => $A]);
// echo json_encode("Hello: ".$A);
?>

推荐阅读