Не удалось сгенерировать токен, используя метод getd в модуле Nestuite https
Идея состоит в том, чтобы подключиться к внешней системе из NS и получить токен из ответа https. Прежде всего, я преобразовал пару (логин, пароль) в base64, затем я создал заголовок, содержащий параметры авторизации в определенном формате, и, наконец, я отправил свой запрос https. Но возвращается код ответа 406, а не 200:/ .
Ниже приведен пример структуры моего кода
var stringInput = "email:password";
var base64EncodedString = encode.convert({
string: stringInput,
inputEncoding: encode.Encoding.UTF_8,
outputEncoding: encode.Encoding.BASE_64
});
var auth = 'Basic ' + base64EncodedString;
var _headers = false;
_headers = {
Authorization: auth
};
var url_ = 'https:/..../api/auth/token';
var auth_resp = https.get({
url: url_,
headers: _headers
});
if (auth_resp.code == 200) {
return JSON.parse(auth_resp.body);
}
Есть ли у вас идеи об этом! и большое спасибо:D
2 ответа
Я должен опубликовать свое решение для другого разработчика NS, большое спасибо за @JonLamb и @bknights за ваши ответы, которые помогли мне!
мой код работает сейчас!
var stringInput = "email:password";
var base64EncodedString = encode.convert({
string: stringInput,
inputEncoding: encode.Encoding.UTF_8,
outputEncoding: encode.Encoding.BASE_64
});
var auth = 'Basic ' + base64EncodedString;
var _headers = false;
_headers = {
'Accept': 'application/json',
'authorization': auth
};
var url_ = 'https:/..../api/auth/token';
var auth_resp = https.get({
url: url_,
headers: _headers
});
if (auth_resp.code == 200) {
return JSON.parse(auth_resp.body);
}
Пожалуйста, проверьте значение ошибки 406
А затем рассмотрите API-документы системы, к которой вы пытаетесь подключиться. Вам может понадобиться заголовок Accept или, возможно, неправильно настроен принимающий сервер, и они не принимают запросы GET и должны были вместо этого вернуть 405.
Наконец, я предполагаю в вашем образце: https:/..../api/auth/token
....
является заменой реального имени хоста. В противном случае ваш ответ будет своего рода относительным ответом самого Netsuite.