如何使用web服务从其他系统上传moodle中的用户图片

如何使用web服务从其他系统上传moodle中的用户图片,moodle,Moodle,我有Moodle和Drupal集成系统,Drupal是主要的,用户首先在Drupal中创建,然后通过web服务在Moodle中创建,但我无法将用户图片从Drupal传送到Moodle,我不需要核心修复,需要干净、系统的解决方案 有人能帮我吗?不幸的是,目前core中没有合适的web服务支持此功能。您可以在Moodle Home安装中看到web服务文档▶ 现场管理▶ 插件▶ 网络服务▶ API文档 有很多方法可以通过插件来支持这一点,但由于您似乎并不热衷于走这条路,您是否考虑过使用Gravatar

我有Moodle和Drupal集成系统,Drupal是主要的,用户首先在Drupal中创建,然后通过web服务在Moodle中创建,但我无法将用户图片从Drupal传送到Moodle,我不需要核心修复,需要干净、系统的解决方案


有人能帮我吗?

不幸的是,目前core中没有合适的web服务支持此功能。您可以在Moodle Home安装中看到web服务文档▶ 现场管理▶ 插件▶ 网络服务▶ API文档


有很多方法可以通过插件来支持这一点,但由于您似乎并不热衷于走这条路,您是否考虑过使用Gravatar作为解决方案?有关于如何设置的文档:

第一步是上传图片

localhost/moodle/webservice/upload.phptoken=9f47591ed3f6cc53720f0dc4e81&filearea=draft
参数:-

token=9f47591ed3f6cc53720f0dc4e81
filearea=draft
然后你会得到这样的回答

[
{
    "component": "user",
    "contextid": 5,
    "userid": "2",
    "filearea": "draft",
    "filename": "Ali Hasans Resume.pdf",
    "filepath": "/",
    "itemid": 560134043,
    "license": "unknown",
    "author": "Admin User",
    "source": "O:8:\"stdClass\":1:{s:6:\"source\";s:21:\"Ali Hasans Resume.pdf\";}"
}
]

  • 第二步 更新个人资料图片

    localhost/moodle/webservice/rest/server.php?moodlewsrestformat=json&draftitemid=560134043&wsfunction=core\u user\u update\u picture&wstoken=9f47591ed3f6cc53720f0dc4e81

params

moodlewsrestformat=json
draftitemid=560134043  this "draftitemid" comes from upload.php response
wsfunction=core_user_update_picture
wstoken=9f47591ed3f6cc53720f0dc4e81
如果成功的话,反应会像

{
"success": true,
"profileimageurl": "http://localhost/moodle/theme/image.php/alpha/core/1609845491/u/f1",
"warnings": []
}

这是我的想法