function main() {
  
  var fromCurrency = 'GBP';          //3 letter currency code for base currency
  var toCurrency = 'USD';            //3 letter currency code for counter currency
  var customDate = '2012-01-30';     //Date of exchange rate in form 'yyyy-MM-dd'. Leave as blank string for current exchange rates. Dates for fixer.io are valid from 2000 onwards only
  
  var exchangeRate = GetExchangeRate(fromCurrency,toCurrency,customDate);
  
  Logger.log(exchangeRate);

}

function GetExchangeRate(fromCurrency,toCurrency, customDate) {
  
  if (fromCurrency==toCurrency) {
    return 1;
  }
  
  var url = ConstructUrl(fromCurrency,toCurrency,customDate);
  
  try {
    var jsonResponseString = UrlFetchApp.fetch(url).getContentText();
  }
  catch(err) {
    var errorMessage = "Error has occurred. Unable to Access URL. Please check input parameters";
    Logger.log (errorMessage);
    return errorMessage;
  }
  
  var jsonResponseObject = JSON.parse(jsonResponseString);
  
  var exchangeRate = jsonResponseObject['rates'][toCurrency];
  
  exchangeRate = parseFloat(exchangeRate);
  
  return exchangeRate;
  
}

function ConstructUrl(fromCurrency,toCurrency,customDate) {
  
  var baseUrl = 'http://api.fixer.io/';
  
  if (customDate === '') {
    customDate = 'latest';
  }
  
  var finalUrl = baseUrl + customDate;
  
  finalUrl = finalUrl + '?base=' + fromCurrency;  
  finalUrl = finalUrl + '&symbols=' + toCurrency;
  
  return finalUrl;
  
}