我已经在Google应用脚本上编写了doPost(e)函数,该函数将根据发送的数据返回一个数字。脚本返回一个数字,如下所示:
Google App脚本代码:
doPost(e)
{
/* Code that does stuff with the parameters */
var results = 3;
var result_output = JSON.stringify(results);
var output = ContentService.createTextOutput(result_output).setMimeType(ContentService.MimeType.JSON);
return output;
}
这是我的cURL代码,该代码发送适当的值,旨在将Google App脚本代码返回的输出存储在变量中,以供以后在程序中使用:
function connect_to_GAS()
{
// Get cURL resource
$curl = curl_init();
// Set some options
curl_setopt_array($curl, array(
CURLOPT_URL => 'puturlhere',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
// add params here
)
));
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // there is a redirect
// Send the request, save response to $resp
$resp = curl_exec($curl);
echo $resp;
}
当我返回$ resp值时,它仅返回“ 1”,因为该函数已成功执行,但是由于某种原因,我无法获取它来存储重新调整的值!!!
我已将其部署为Web应用程序,并且脚本的Post函数确实起作用,但是我的cURL端未按我希望的那样接收值。令人沮丧的是,当我运行cURL脚本时,所需的值会显示在结果网页中,但我无法访问它。
有人知道我如何存储回复吗???? 任何帮助深表感谢!!
答案 0 :(得分:0)
示例代码
在gs文件中
function doPost(e){
//WHILE PRODUCTION
//var postData = JSON.parse(e.postData.contents);
//WHILE TESTING
//var postData = e.postData.contents;
return ContentService.createTextOutput(JSON.stringify({'status': 'success'})).
setMimeType(ContentService.MimeType.JSON);
}
function test(){
var payload = {
"key1": "value1",
"key2": "value2",
}
var e = {
postData: {
contents: payload
}
};
var returned = doPost(e);
}
在php文件中
<?php
session_start();
require_once '../vendor/autoload.php';
$client = new GuzzleHttp\Client(['verify'=>false]);
// Webapp link
$url = 'https://script.google.com/macros/s/yourwebapplink/exec';
$payload = json_encode(array("key1" => "value1", "key2" => "value2"))
$response = $client->request('POST', $url, ['json' => $payload]);
$body = json_decode($response->getBody());
print_r($body);
return;
?>
如果使用作曲家,则很容易安装guzzle