Binance API,通过代码简单获取价格,不起作用

时间:2021-04-28 12:34:48

标签: api binance

当我将此代码作为 Google Sheets 脚本执行时,我的第一次和后续尝试很少从 Binance 检索数据。有时它会起作用。有人可以帮忙吗?

function BINTickFetch(){
  var rows=[],obj_array=null;
  try {obj_array=JSON.parse(UrlFetchApp.fetch("https://api.binance.com/api/v3/ticker/price").getContentText());} catch (e) {obj_array=null;}
  if (obj_array==null) {
    Browser.msgBox("data not received from Binance. Try again"); 
    return false;
  }
  else {
    for (r in obj_array) rows.push([obj_array[r].symbol, parseFloat(obj_array[r].price)]);
    var ss=SpreadsheetApp.getActiveSpreadsheet(),sheet=ss.getSheetByName('Binance24h');ss.getRange("Binance24h!A1").setValue(new Date());
    try {var range=sheet.getRange(2,1,sheet.getLastRow(),2).clearContent();} catch(e) {Logger.log("error");}
    if (rows==null) {Browser.msgBox("incomplete symbol data from Binance. Try again"); return false;}
    range=sheet.getRange(2,1,rows.length,2); range.setValues(rows); 
  }
}

(在某处从互联网上获取代码)

1 个答案:

答案 0 :(得分:0)

我不熟悉那个网站,我使用雅虎财经。这将获取 MSFT 的历史定价

function importCSVFromWeb() {
  // Provide the full URL of the CSV file.
  var csvUrl = "https://query1.finance.yahoo.com/v7/finance/download/MSFT?period1=1577806579&period2=1609428979&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);
}

Yahoo 在开始和结束期间使用 unix 日期戳

这是将日期转换为 unix 日期戳的一种方法

function getUnixDateStamp(stdDate){
strDate = stdDate.yyyymmdd();
return Date.parse(strDate)/1000
}