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