来自 Google 应用脚本的 Baselinker Api 调用

达米安

我很难从我的应用脚本连接到第三方 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);

谢谢

Tanaike

我相信你的目标如下。

  • 您想将以下 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自Android设备的Google Map调用方向API出现错误

Google脚本-调用APi-错误对象

比较来自 Google Web 应用脚本中 url 的文本

来自Ionic应用程序的Api调用未在服务器Api上命中

来自Azure自定义API脚本的HTTP POST调用不起作用

从涉及Google Maps API的Java脚本代码调用Go Server

可以从Google脚本API调用中设置变量?

使用服务帐户从PHP调用Google Apps脚本执行API

如何处理来自Redux应用的api调用中的> 400个响应?

谷歌脚本;来自 API 的 setValues

来自 API 的数据调用为空

来自浏览器的完整 API 调用

如何保护来自代理的api调用

处理来自前端的API调用的最佳方法

来自 API 调用的 Angular 4 For 循环

来自 Api 调用的 Java 中的 Json 建模

过滤来自 API 调用的 JSON 响应

使用应用程序脚本的授权REST API调用。

来自 android 的 Http 调用来自 Rest API

调用Google Directions API表单Xamarin.Forms应用

调用Google Apps脚本

Shopify API,来自Google Apps脚本UrlFetchApp的PUT请求的406响应

API调用与来自前端的直接页面调用(AJAX)

从Google Sheets API v4调用Google Spreadsheets Apps脚本函数

Google Apps脚本网络应用的Drive API推送通知

找不到日历API(Google Apps脚本)项目,因此无法用于API调用

Azure AD B2C:如何根据来自消费应用程序的值区分被调用 REST API 的 serviceUrl

来自 Google API 距离值的 Json 响应

来自Google或Amazon的书提要api?