Binance API,简单的按股票行情获取价格,不起作用



当我将此代码作为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); 
  }
}

我不熟悉那个网站,我使用雅虎金融。这将获取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);
}

雅虎使用unix日期戳作为的开始和结束时间段

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

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

最新更新