我很难从我的应用脚本连接到第三方 api (Baselinker Api)。
function makeHttpPostRequestWithAppsScript() {
const url = "https://api.baselinker.com/connector.php?method=getOrders";
const response = UrlFetchApp.fetch(url, {
"method": "POST",
"headers": {
"X-BLToken": "xxxx",
"Content-Type": "application/json"
},
"muteHttpExceptions": true,
"followRedirects": true,
"validateHttpsCertificates": true,
"contentType": "application/json",
"payload": JSON.stringify({"order_id":"5131"})
});
Logger.log("Response code is %s", response.getResponseCode());
Logger.log(response.getContentText());
}
知道我哪里错了吗?当然令牌是可以的。我收到这样的错误:
Informacje {"status":"ERROR","error_code":"ERROR_UNKNOWN_METHOD","error_message":"An empty or unknown method has been used"}
这就是它在 PHP 中的样子
<?php
$methodParams = '{
"date_confirmed_from": 1407341754,
"get_unconfirmed_orders": false
}';
$apiParams = [
"method" => "getOrders",
"parameters" => $methodParams
];
$curl = curl_init("https://api.baselinker.com/connector.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-BLToken: xxx"]);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($apiParams));
$response = curl_exec($curl);
谢谢
我相信你的目标如下。
您想将以下 PHP 脚本转换为 Google Apps 脚本。
<?php
$methodParams = '{
"date_confirmed_from": 1407341754,
"get_unconfirmed_orders": false
}';
$apiParams = [
"method" => "getOrders",
"parameters" => $methodParams
];
$curl = curl_init("https://api.baselinker.com/connector.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-BLToken: xxx"]);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($apiParams));
$response = curl_exec($curl);
当我看到您的 PHP 脚本时,似乎数据$methodParams
是作为表单数据发送的。那么,在这种情况下,下面的修改呢?
function makeHttpPostRequestWithAppsScript() {
const url = "https://api.baselinker.com/connector.php";
const response = UrlFetchApp.fetch(url, {
"method": "POST",
"headers": { "X-BLToken": "xxxx" },
"muteHttpExceptions": true,
"payload": {
"method": "getOrders",
"parameters": JSON.stringify({ "order_id": "5131" }),
}
});
Logger.log("Response code is %s", response.getResponseCode());
Logger.log(response.getContentText());
}
当我看到您的示例 PHP 脚本和您的 Google Apps 脚本时,在您的 PHP 脚本中,{"date_confirmed_from": 1407341754,"get_unconfirmed_orders": false}
它被用作parameters
. 但是,在您的 Google Apps 脚本{"order_id":"5131"}
中使用。如果您的示例 PHP 脚本工作正常,而上述修改后的 Google Apps 脚本不起作用,请测试替换{"order_id":"5131"}
为{"date_confirmed_from": 1407341754,"get_unconfirmed_orders": false}
并再次测试。
我认为如果{"date_confirmed_from": 1407341754,"get_unconfirmed_orders": false}
习惯了上面的 Google Apps Script,似乎请求与您的 PHP 脚本相同。因此,如果发生错误,请再次检查每个值和您的令牌。
此修改后的脚本假定您的示例 PHP 脚本有效。请注意这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句