根据各种指南,我设法完成以下任务:
现在,当我转到内置的Web服务测试客户端时,选择在REST API上使用基于令牌的身份验证,选择“moodle_user_create_users”函数并输入令牌和详细信息,我得到:
REST protocol: moodle_user_create_users
URL: [...]
'<?xml version="1.0" encoding="UTF-8" ?>
<EXCEPTION class="webservice_access_exception">
<ERRORCODE>accessexception</ERRORCODE>
<MESSAGE>Access control exception</MESSAGE>
<DEBUGINFO>Access to the function moodle_user_create_users() is not allowed.
There could be multiple reasons for this:
1. The service linked to the user token does not contain the function.
2. The service is user-restricted and the user is not listed.
3. The service is IP-restricted and the user IP is not listed.
4. The service is time-restricted and the time has expired.
5. The token is time-restricted and the time has expired.
6. The service requires a specific capability which the user does not have.
7. The function is called with username/password (no user token is sent)
and none of the services has the function to allow the user.
These settings can be found in Administration > Site administration
> Plugins > Web services > External services and Manage tokens.</DEBUGINFO>
</EXCEPTION>
我错过了什么?
答案 0 :(得分:1)
我也有同样的例外。然后我在管理仪表板中进行了此更改。
网站管理 -> 移动应用 -> 移动设置 -> 为移动设备启用网络服务。
打开这个。
这就是我解决问题的人。
答案 1 :(得分:0)
我的回答似乎与其他人的经历相同:Web服务测试客户端无可救药地被打破。
在我开展这个项目时,这是一个众所周知的问题,不幸的是Moodle决定继续发布此功能。
在可预见的未来,我建议不要浪费你的时间来尝试使用这个“工具”。
答案 2 :(得分:-1)
尝试从以下位置启用Web服务身份验证: 网站管理&gt;插件&gt;管理身份验证
答案 3 :(得分:-2)
尝试获得令牌抛出https://yourmoodle/login/token.php?username=username&password=pass&service=webserviceshortname。 我的来自/admin/settings.php?section=webservicetokens dosnt的令牌也可以工作 并在/admin/settings.php?section=externalservices
中启用服务功能