#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. В какой момент появляется эта ошибка? Какие шаги вы (как пользователь) делали до этого момента?