You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CMC API按ID获取加密货币价格并写入Google Sheets

通过CoinMarketCap API根据ID获取加密货币价格(Google Apps Script实现)

你需要将原有按列表索引取价格的函数,改为按CoinMarketCap的加密货币ID(如BTC为1、ETH为1027)获取对应EUR价格,以下是修正方案:

原有代码的核心问题

原函数里return json.data[x].quote.EUR.price是直接取数组第x个索引的条目,但数组索引和CMC的加密货币ID完全不对应,必须遍历数组匹配ID才能拿到正确数据。

修正后的完整函数

function getCryptoData(targetId) {
  var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?convert=EUR";
  var apiKey = 'xyz'; // 替换成你的API密钥
  var headers = {
    "X-CMC_PRO_API_KEY": apiKey,
    "Accept": "application/json"
  };

  var response = UrlFetchApp.fetch(url, {'headers': headers});
  var json = JSON.parse(response.getContentText());
  var cryptoList = json.data;

  // 遍历加密货币列表,匹配目标ID
  for (var i = 0; i < cryptoList.length; i++) {
    if (cryptoList[i].id == targetId) {
      return cryptoList[i].quote.EUR.price;
    }
  }
  
  // 未找到匹配ID时的返回值
  return "未找到对应ID的加密货币";
}

关键说明

  1. 将参数名改为targetId,避免和数组索引混淆,语义更清晰
  2. 使用标准JavaScript for循环遍历json.data数组,逐个校验每个条目的id属性
  3. 匹配到目标ID后直接返回对应价格;遍历结束未匹配则返回提示信息

你之前错误循环的问题

你写的循环不符合JavaScript语法规范:

  • 不存在for id in data['id']这种写法,正确遍历数组需用索引循环或for...of语法
  • 即使遍历逻辑正确,json.data[]这种写法也无法正确引用数组条目,必须指定具体索引

内容的提问来源于stack exchange,提问作者miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:23:24