我很難從我的應用腳本連接到第三方 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);
謝謝
uj5u.com熱心網友回復:
我相信你的目標如下。
您想將以下 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 腳本有效。請注意這一點。
參考:
- 獲取(網址,引數)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/460457.html
