使用Moodle API在Moodle中创建用户&;Node.js
试图在moodle中创建用户,但我得到的只是使用Moodle API在Moodle中创建用户&;Node.js,node.js,moodle,moodle-api,Node.js,Moodle,Moodle Api,试图在moodle中创建用户,但我得到的只是\n\ninvalidtoken\ninvalidtoken-找不到令牌\n\n 该令牌是绝对正确的,因为我是从/admin/settings.php?section=webservicetokens获取它的 这是我正在使用的代码 const axios = require('axios'); var token = 'XXXXXXXXXXXXXxx'; var functionname = 'core_user_create_users'; va
\n\ninvalidtoken\ninvalidtoken-找不到令牌\n\n
该令牌是绝对正确的,因为我是从/admin/settings.php?section=webservicetokens获取它的
这是我正在使用的代码
const axios = require('axios');
var token = 'XXXXXXXXXXXXXxx';
var functionname = 'core_user_create_users';
var userstocreate = [{
username: 'bananaicecream',
password: '1234',
firstname: 'Banana',
lastname: 'Republic',
email: 'test@example.com',
idnumber: 'AUTOGENERATEDID001',
lang: 'en',
description: 'If you die you die',
country: 'us'
}];
export async function callMoodle() {
return axios({
url: `https://somedomainname.moodlecloud.com/webservice/rest/server.php`,
method: 'post',
data: {
wstoken: token,
wsfunction: functionname,
moodlewsrestformat: 'json',
users: userstocreate
}
})
.then( (response) => {
return {status: response.status, response: response.data};
})
.catch( (error) => {
return {status: error.response.status, response: error.response.data};
});
}
知道我做错了什么吗?因为我已经建立了一个名为“我的服务”的外部服务,并为其分配了相应的功能
下面是函数
我建议您通过邮递员之类的方式测试您的Web服务呼叫。这将至少确保参数和Web服务调用是正确的,并指示问题是与nodejs代码还是Web服务调用有关。已解决-您需要将数据作为表单数据发送
const axios = require('axios');
const FormData = require('form-data');
export async function callMoodle() {
const formData = new FormData();
await formData.append('moodlewsrestformat', 'json');
await formData.append('wsfunction', 'core_user_create_users');
await formData.append('wstoken', 'TOKEN_HERE');
await formData.append('users[0][username]', 'bananaicecream');
await formData.append('users[0][password]', 'xxxxxxxx');
await formData.append('users[0][firstname]', 'Banana');
await formData.append('users[0][lastname]', 'Republic');
await formData.append('users[0][email]', 'user@example.com');
await formData.append('users[0][idnumber]', 'AUTOGENERATEDID001');
await formData.append('users[0][lang]', 'en');
await formData.append('users[0][description]', 'If you die you die');
return axios.post('https://somedomain.moodlecloud.com/webservice/rest/server.php', formData, {
headers: formData.getHeaders()
})
.then( (response) => {
let response_object = {status: response.status, response: response.data};
return response_object;
})
.catch( (error) => {
let response_object = {status: error.response.status, response: error.response.data};
return response_object;
});
}