大佬教程收集整理的这篇文章主要介绍了通过网络服务连接moodle api,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
让我解释一下:我的目的是通过网络应用创建moodle用户。
我正在 tomcat 8.0.15.0 上实现一个 Web 应用程序。也就是说,我在服务器端使用 java servlet。许多 JsP 文件和 JavaScript(其中大部分在 jquery 中)驻留在客户端。
另一方面,在另一台服务器上,我有一个测试moodle安装。通过 site-administration> plugins> web services> external services,我创建了一个启用 core_user_create_users 功能的 ws。还创建了一个令牌来访问这个 ws,并将 admin 用户设置为授权用户。
然后,在 Chrome 上输入以下网址:
https://mysyte.com/webservice/rest/server.php?wstoken=780f8b3a1164163d4dc00a757071194e&wsfunction=core_user_create_users&moodlewsrestformat=Json&users[0][username]=testuser&usr[ [email] =john@smith.com&users [0] [password] = XXXXXX
它奏效了。它返回了一个空白页,带有文本
[{"ID": 1,"username": "testuser"}]
从而在moodle中创建一个用户。
我的问题是:我怎样才能从 java 中做到这一点?或者从 JavaScript 中做到这一点?或者更好地从 jquery 中做到这一点。
如果不是,从 php 中,我想我可以从 java、JavaScript 或 jquery 调用它。
我的错误提示:在我使用的应用程序的另一部分,在 JavaScript 中,成功调用了 $.getJsON()。这就是为什么我认为在这种情况下也会为我服务。但是现在没有成功,当 mozilla 调试器到达调用时,它挂起。
欢迎任何反馈。
调用看起来像
function create_moodle_user(username,firstname,lastname,email,password) {
var url = "https://mysyte.com/webservice/rest/server.php?"
+ "wstoken=780f8b3a1164163d4dc00a757071194e" + "&"
+ "wsfunction=core_user_create_users" + "&"
+ "moodlewsrestformat=Json" + "&"
+ "users[0][username]=" + username + "&"
+ "users[0][firstname]=" + firstname + "&"
+ "users[0][lastname]=" + lastname + "&"
+ "users[0][email]=" + email + "&"
+ "users[0][password]=" + password;
$.getJsON(url,function(data) { // should return [{"ID":4,"username":"testuser"}]
// this point is never reached
if (data.length < 64) {
}
else {
}
});
}
最后,它通过更改调用和传递参数的方式起作用。
function create_moodle_user(u,f,l,e,fn) {
var domainname = 'https://my.moodle.site.com';
var data = {
wstoken: '780f8b3a1164163d4dc00a757071194e'
wsfunction: 'core_user_create_users'
moodlewsrestformat: 'json',users: [
{
username:u,password:'xxxxxxxx',email:e,firstname:f,lastname:l
}
]
};
var response = $.ajax({
type: 'GET',data: data,url: domainname + '/webservice/rest/server.php'
});
// pass the function parameter
response.done(fn);
}
这奏效了!
我现在的问题是获取用户信息,因为我不知道如何从 core_user_get_users_by_field 获取响应。
这就是我所拥有的:
function get_moodle_user(u,fn) {
var domainname = 'https://my.moodle.site.com';
var data = {
wstoken: '780f8b3a1164163d4dc00a757071194e'
wsfunction: 'core_user_get_users_by_field'
moodlewsrestformat: 'json',field: 'username',username:u
};
var response = $.ajax({
type: 'GET',url: domainname + '/webservice/rest/server.php'
});
console.log(responsE); // this does not show the result data
// pass the function parameter
response.done(fn);
}
有什么想法吗?
以上是大佬教程为你收集整理的通过网络服务连接moodle api全部内容,希望文章能够帮你解决通过网络服务连接moodle api所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。