与 google 脚本一起使用时,币安搜索 API 返回 403

2024-06-18

我正在使用 binance API 来获取 USDT 的价格。该 API 适用于邮递员,但不适用于 google 脚本。

function fetchCryptoPricesFromApi() {
  const data = {
    "page": 1,
    "rows": 10,
    "payTypes": [],
    "asset": "USDT",
    "tradeType": "SELL",
    "fiat": "LKR",
    "publisherType": null,
    "transAmount": "2600"
  }

  const payload = JSON.stringify(data)

  const options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  }

  let response;
  
  try {
    response = UrlFetchApp.fetch('https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search', options);
  } catch (error) {
    console.log('Oops Error, ', error);
    return
  }

  const prices = JSON.parse(response)['data'];
  console.log(prices)
}

执行此操作时出现以下错误,

Oops Error,  { [Exception: Request failed for https://p2p.binance.com returned code 403. Truncated server response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" ... (use muteHttpExceptions option to examine full response)] name: 'Exception' }

我也尝试等待一段时间。


从您显示的错误消息中,我确认了状态代码403. Ref https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403在这种情况下,认为无法从Google端直接访问该网站。我认为你的问题的原因就是这个。

在这种情况下,作为解决方法,我建议访问 URL,而无需使用脚本编辑器直接运行脚本。当我测试此解决方法时,我确认可以返回该值。

在此解决方法中,使用以下流程。

  1. 把自定义函数=fetchCryptoPricesFromApi()到一个细胞。
  2. 从 API 检索值。
  3. 从单元格中检索值。
  4. 将值解析为 JSON 数据。

此解决方法的示例脚本如下。

示例脚本:

在此解决方法中,我使用 Google 电子表格。因此,请创建一个新的 Google 电子表格并打开 Google 电子表格的脚本编辑器。并且,复制并粘贴以下脚本。并且,运行main()与脚本编辑器一起使用。

function fetchCryptoPricesFromApi() {
  const data = {
    "page": 1,
    "rows": 10,
    "payTypes": [],
    "asset": "USDT",
    "tradeType": "SELL",
    "fiat": "LKR",
    "publisherType": null,
    "transAmount": "2600"
  }
  const payload = JSON.stringify(data)
  const options = {
    "method": "POST",
    "contentType": "application/json",
    "payload": payload
  }
  const response = UrlFetchApp.fetch('https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search', options);
  return response.getContentText();
}

// Please run this function.
function main() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const range = sheet.getRange("A1");
  range.setFormula("=fetchCryptoPricesFromApi()");
  SpreadsheetApp.flush();
  const value = range.getValue();
  range.clearContent();
  const prices = JSON.parse(value)['data'];
  console.log(prices)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 google 脚本一起使用时,币安搜索 API 返回 403 的相关文章

随机推荐