Как создать пользователя в openfire, используя restpi в приложении nodeJs?
Это моя функция в приложении NodeJs, которую я использую для создания пользователя в openfire.
var createUser = function(objToSave, callback) {
const options = {
method: 'POST',
uri: url.resolve(Config.APP_CONSTANTS.CHAT_SERVER.DOMAIN_NAME, '/plugins/restapi/v1/users'),
headers: {
'User-Agent': 'Request-Promise',
'Authorization': Config.APP_CONSTANTS.CHAT_SERVER.SECRET_KEY,
'Accept': 'application/json',
'Content-Type': 'application/json',
},
data: objToSave
}
request(options)
.then(function(response) {
callback(null, response);
})
.catch(function(error) {
// Deal with the error
console.log(error);
callback(error);
});
};
objToSave - это объект json, содержащий имя пользователя и пароль.
{
"Username": "gabbar",
"Password": "gabbar@123"
}
когда я запускаю эту функцию, я получаю следующую ошибку..
{
"statusCode": 400,
"error": "Bad Request"
}
Я правильно настроил свой секретный ключ и имя домена localhost: // 9090, кто-нибудь может сказать мне, что я делаю не так? заранее спасибо.
2 ответа
Я обнаружил, что проблема была с запросом-обещанием. отправка данных не была выполнена в требуемом формате. поэтому вместо этого сейчас я использую другой модуль minimal-request-обещание. и это сработало как очарование для меня. После этого мой код выглядит примерно так.
var requestPromise = require('minimal-request-promise');
var createUser = function(objToSave, callback) {
const options = {
headers: {
'Authorization': Config.APP_CONSTANTS.CHAT_SERVER.SECRET_KEY,
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(objToSave)
};
requestPromise.post('http://localhost:9090/plugins/restapi/v1/users', options)
.then(function(response) {
callback(null, response);
})
.catch(function(error) {
// Deal with the error
console.log(options);
console.log(error);
callback(error);
});
};
Я думаю, что варианты, которые вы предоставили, нужны JSON.stringify
объект, прежде чем отправить его
Измененные параметры, как показано ниже
const options = {
method: 'POST',
uri: url.resolve(Config.APP_CONSTANTS.CHAT_SERVER.DOMAIN_NAME, '/plugins/restapi/v1/users'),
headers: {
'User-Agent': 'Request-Promise',
'Authorization': Config.APP_CONSTANTS.CHAT_SERVER.SECRET_KEY,
'Accept': 'application/json',
'Content-Type': 'application/json',
},
data: JSON.stringify(objToSave)
}