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

Google脚本调用CoinMarketCap API获取加密货币价格参数传递问题

修复Google Script调用CoinMarketCap API的400错误

你的问题核心是当ticker参数未正确传递(或为空)时,API收到的symbol参数为空,触发400错误,同时手动拼接URL参数的方式可能存在编码漏洞。以下是针对性的修复方案:

1. 先加参数校验,拦截无效输入

在函数开头先检查ticker是否为空、格式是否正确,提前避免无效请求:

function getCPrice(ticker) {
  // 校验参数:不能为空、必须是字符串、不能全是空格
  if (!ticker || typeof ticker !== 'string' || ticker.trim() === '') {
    return "请输入有效的加密货币代码(如BTC)";
  }
  ticker = ticker.trim().toUpperCase(); // 统一转大写,避免大小写不匹配问题

  var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest";
  var apiKey = 'replaced-my-api-key'; // 替换成你的API密钥
  var headers = {
    "X-CMC_PRO_API_KEY": apiKey,
    "Accept": "application/json"
  };

  var parameters = {
    "symbol": ticker
  };

  // 剩余请求代码...
}

2. 改用UrlFetchApp的params选项(推荐)

手动拼接URL参数容易出现编码错误(比如特殊字符),用Google Script内置的params配置,让系统自动处理参数拼接和URL编码:

function getCPrice(ticker) {
  // 先做参数校验
  if (!ticker || typeof ticker !== 'string' || ticker.trim() === '') {
    return "请输入有效的加密货币代码(如BTC)";
  }
  ticker = ticker.trim().toUpperCase();

  var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest";
  var apiKey = 'replaced-my-api-key';
  var options = {
    "headers": {
      "X-CMC_PRO_API_KEY": apiKey,
      "Accept": "application/json"
    },
    "params": { // 自动处理参数拼接和编码
      "symbol": ticker
    }
  };

  try {
    var response = UrlFetchApp.fetch(url, options);
    var json = JSON.parse(response.getContentText());
    
    // 检查API是否返回了目标数据
    if (!json.data || !json.data[ticker]) {
      return "未找到该加密货币的价格数据";
    }
    
    return json.data[ticker].quote.USD.price;
  } catch (e) {
    // 捕获错误,返回更友好的提示
    return "请求错误:" + e.message;
  }
}

额外注意事项

  • 在Google Sheets中调用函数时,确保传入的单元格是纯文本格式,没有额外空格或隐藏字符(比如=getCPrice(A1),A1单元格只写BTC或ETH即可)
  • CoinMarketCap API对代码大小写不敏感,但统一转大写能避免潜在的匹配问题
  • 加入try-catch块可以更好地处理API请求失败的情况,比如密钥错误、网络问题等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:03:18