Как использовать скрипт Google Apps для аутентификации SaxoTrader

#javascript #google-apps-script #oauth-2.0

#javascript #google-apps-script #oauth-2.0

Вопрос:

Я хочу использовать скрипт Google Apps для создания программы, которая позволяет мне извлекать цены SaxoTrader и совершать сделки, используя их учетную запись моделирования. Я застрял на этапе авторизации. Кажется, я не могу получить к нему авторизацию / доступ.

в нем говорится, что доступ запрещен. я не уверен, почему? может кто-нибудь мне помочь? Спасибо!

 var clientID = "c8703eba07e44f96804a3baa195b96de"
var clientSecret = "089205e12ad74b6787f02f77a0908d2c"
var authorizationBaseUrl = "https://sim.logonvalidation.net/authorize" 
var tokenUrl = "https://sim.logonvalidation.net/token" 
// Refer to notes from "https://www.developer.saxo/openapi/learn/oauth-authorization-code-grant"


//Create the OAuth2 service
function getService() {
  return OAuth2.createService('Saxo')
  // Set the endpoint URLs
  .setAuthorizationBaseUrl(authorizationBaseUrl)
  .setTokenUrl(tokenUrl)
  
  // Set the client ID and secret
  .setClientId(clientID)
  .setClientSecret(clientSecret)
  
  // Set other parameters required by Saxo
  .setParam('response_type', 'code')
  
  //Set the name of callback function to be invoked to complete OAuth flow.
  .setCallbackFunction("authCallback")
  
  //Set the property story where authorized tokens should be persisted
  .setPropertyStore(PropertiesService.getUserProperties());
}

// Direct the user to the authorization URL
function showSidebar() {
  var service = getService();
  if (!service.hasAccess()) {
    var authorizationUrl = service.getAuthorizationUrl();
    var template = HtmlService.createTemplate(
      '<a href="<?= authorizationUrl ?>" target="_blank">Authorize</a>. '  
      'Reopen the sidebar when the authorization is complete.');
    template.authorizationUrl = authorizationUrl;
    var page = template.evaluate();
    SpreadsheetApp.getUi().showSidebar(page);
  } else {
    //...
  }
}

//Handles the OAuth callback
function authCallback(request) {
  var service = getService();
  var authorized = service.handleCallback(request);
  if (authorized) {
    return HtmlService.createHtmlOutput("Success!");
  } else {
    return HtmlService.createHtmlOutput("Denied!");
  }
}

//Get the access token and make requests to the API
function makerequest() {
  var service = getService();
  var response = UrlFetchApp.fetch("https://gateway.saxobank.com/sim/openapi/port/v1/users/me", {
    headers: {
      Authorization: 'Bearer '   service.getAccessToken()
    }
  });
  var results = JSON.parse(response.getContentText());
  SpreadsheetApp.getActiveRange().setValues(results);  
}

// Logs the redirect URI to register
function logRedirectUri() {
  Logger.log(OAuth2.getRedirectUri());
}
 

Комментарии:

1. Вы только что опубликовали свой секрет клиента в общедоступном сообщении. Обязательно сделайте его недействительным и создайте новый. И НЕ публикуйте это.

2. В какой момент появляется эта ошибка? Какие шаги вы (как пользователь) делали до этого момента?