当我将此代码作为 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);
}
}
(在某处从互联网上获取代码)
答案 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
}