Javascript 从CoinMarketCap API获取以欧元而非美元-天然气为单位的报价

Javascript 从CoinMarketCap API获取以欧元而非美元-天然气为单位的报价,javascript,google-apps-script,cryptocurrency,google-apps-script-api,coinmarketcap,Javascript,Google Apps Script,Cryptocurrency,Google Apps Script Api,Coinmarketcap,以下代码在CoinMarketCap API的GAS(谷歌应用程序脚本)中对我来说可以正常工作 function cmcQuotes2() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('base'); var lastRow = sheet.getLastRow(); var extension= lastRow - 2; var

以下代码在CoinMarketCap API的GAS(谷歌应用程序脚本)中对我来说可以正常工作

function cmcQuotes2() {
  
  var ss       = SpreadsheetApp.getActiveSpreadsheet();
  var sheet    = ss.getSheetByName('base');
  var lastRow  = sheet.getLastRow();
  var extension= lastRow - 2;
  
  var oldAsset=sheet.getRange(2, 1, extension).getValues();
  var rows=[];
  var j;
  for (j=0; j < oldAsset.length; j++) {
    rows.push(oldAsset[j][0]);}
  
  var apiKey = '*** your api key'; 
  var params = {
    'method'  : 'GET',
    'qs'      : {'start': '1', 'limit': '100', 'convert': 'USD'},
    'headers' : {'X-CMC_PRO_API_KEY': apiKey},
    'muteHttpExceptions': true};
  
  var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest";

var data = UrlFetchApp.fetch(url, params);
  var data = JSON.parse(data.getContentText());
  var data = data.data; 
  
  
  var i;
  for (i=0; i < data.length; i++) {

var asset       = data[i].symbol;               
  var quote       = data[i].quote.USD.price;
    if (quote < 1) {var a = parseFloat(quote);   var a = a.toFixed(8);   var quote = parseFloat(a);} 
    if (quote >=1) {var a = parseFloat(quote);   var a = a.toFixed(2);   var quote = parseFloat(a);} 
    
  var row=rows.indexOf(asset)+2;   

if (row>=2){
       sheet.getRange(row, 2).setValue(quote);
  }  
  }
}

quote.EUR而不是quote.USD??不起作用

var quote       = data[i].quote.EUR.price;
第一种情况忽略欧元,第二种情况返回:

12:59:50
Errore
TypeError: Cannot read property 'price' of undefined
你对此有什么看法? 谢谢

修改要点:
  • UrlFethApp.fetch(url,params)
    params
    处,
    qs
    的属性不存在。我想这可能是你问题的原因
  • 从“”的官方文档来看,似乎需要使用
    qs
    的值作为查询参数
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 发件人: 致: 注:
  • 在这个修改过的脚本中,它假设您的API密钥可以用于您想要使用的API。请小心这个
参考资料:

谢谢@Tanaike,这对我很有用。我希望我可以要求更多的信息来了解一些细节,以防我在工作时不理解,但目前它起了作用,我对此表示感谢。@John Galassi感谢您的回复。我很高兴你的问题解决了。
12:59:50
Errore
TypeError: Cannot read property 'price' of undefined
  var apiKey = '*** your api key'; 
  var params = {
    'method'  : 'GET',
    'qs'      : {'start': '1', 'limit': '100', 'convert': 'USD'},
    'headers' : {'X-CMC_PRO_API_KEY': apiKey},
    'muteHttpExceptions': true};
  
  var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest";

var data = UrlFetchApp.fetch(url, params);
var apiKey = '*** your api key';
var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD";
var params = {
  'method': 'GET',
  'headers': {'X-CMC_PRO_API_KEY': apiKey, 'Accept': 'application/json'},
  'muteHttpExceptions': true
};
var data = UrlFetchApp.fetch(url, params);