如何在节点 Js 应用程序中使用 rest api 在 openfire 中创建用户?
How to create user in openfire using restapi in nodeJs application?
这是我在 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,谁能告诉我我做错了什么?提前致谢。
我认为您提供的选项在发送之前需要 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)
}
我发现问题出在 request-promise 上。它没有以要求的格式正确发送数据。所以现在我使用不同的模块 minimal-request-promise 而不是那个。它对我来说就像魅力一样。使用它之后,我的代码看起来像这样。
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);
});
};
这是我在 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,谁能告诉我我做错了什么?提前致谢。
我认为您提供的选项在发送之前需要 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)
}
我发现问题出在 request-promise 上。它没有以要求的格式正确发送数据。所以现在我使用不同的模块 minimal-request-promise 而不是那个。它对我来说就像魅力一样。使用它之后,我的代码看起来像这样。
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);
});
};