【问题标题】:Import CoinMarketCap Data into Google Sheets将 CoinMarketCap 数据导入 Google 表格
【发布时间】:2021-03-31 10:16:40
【问题描述】:

我使用 CRYPTOFINANCE.ai 和 Google 电子表格 已有几个月了,我想继续前进,以便能够“自己”获取加密货币数据。

我发现了 CoinMarketCap API 并且应该这样做。我成功导入了一个或多个引号。现在我想导入完整列表数据,以便更新所有价格,以获得我的投资组合的实际价值。

这是我现在拥有的,但它没有导入完整的列表:

function price() {
  var sh1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Feuille 4'); 
  var requestOptions = {
    method: 'GET',
  uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest',
  qs: {
    'start': '1',
    'limit': '5000',
    'convert': 'USD'}, 
    'headers' : {'X-CMC_PRO_API_KEY': '**********'}, 
    'json': true, 
    'gzip': true};

  var url='https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=ETH'; 
  var result = UrlFetchApp.fetch(url, requestOptions); 
  var txt= result.getContentText();
  var d=JSON.parse(txt);
  sh1.getRange(1, 2).setValue(d.data.ETH.quote.USD.price)
}

我知道它有一些事情要处理:https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest,但我无法自己解决。

【问题讨论】:

  • 您设法解决了这个问题吗?我也对这个感兴趣

标签: javascript google-apps-script google-sheets cryptocurrency


【解决方案1】:

我不熟悉这个网站,但是当我自己尝试 URL 时,它会返回一个错误,指出 API 密钥丢失

{
    "status": {
        "timestamp": "2021-03-31T12:29:45.203Z",
        "error_code": 1002,
        "error_message": "API key missing.",
        "elapsed": 0,
        "credit_count": 0
    }
}

此外,雅虎财经似乎有免费的加密历史数据,不需要 API,只需发出适当的网络请求。这个从 2020 年 3 月 31 日到 2021 年 3 月 31 日期间获取 BTC。

https://query1.finance.yahoo.com/v7/finance/download/BTC-USD?period1=1585662494&period2=1617198494&interval=1d&events=history&includeAdjustedClose=true

需要破译 period1 和 period2 的格式,我相信它们是 UNIX 时间戳,我可以在这个网站上确认:

https://www.unixtimestamp.com/

然后这段代码会将数据下载到当前工作表中:

function importCSVFromWeb() {
  // Provide the full URL of the CSV file.
  var csvUrl = "function importCSVFromWeb() {
  // Provide the full URL of the CSV file.
  var csvUrl = "https://query1.finance.yahoo.com/v7/finance/download/BTC-USD?period1=1585662494&period2=1617198494&interval=1d&events=history&includeAdjustedClose=true";
  var csvContent = UrlFetchApp.fetch(csvUrl).getContentText();
  var csvData = Utilities.parseCsv(csvContent);

  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}

顺便说一句,雅虎财经似乎从 CoinMarketCap 获取了他们的加密数据

【讨论】:

    【解决方案2】:

    我弄错了两个请求:/listings 和 /quotes

    • Listing 为您提供多种货币的列表。

    • Quotes 只为您提供一枚硬币的数据

    【讨论】:

      猜你喜欢
      • 2018-08-10
      • 2011-02-09
      • 2020-02-23
      • 2023-01-01
      • 2016-06-23
      • 2019-05-18
      • 1970-01-01
      • 2021-03-11
      • 2014-07-31
      相关资源
      最近更新 更多