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

时间:2013-11-05 11:59:26

标签: moodle

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

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

不幸的是,核心中没有适当的Web服务支持此功能。您可以在主页▶站点管理▶插件▶Web服务▶API文档中看到Moodle安装中记录的Web服务。

有许多方法可以通过插件来支持这一点,但是由于您似乎不想沿着这条路走下去,请考虑使用Gravatar作为解决方案吗?有关于如何设置的文档:http://docs.moodle.org/25/en/Roles_settings#Enable_Gravatar

答案 1 :(得分:0)

第一步上传图片

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_user_update_picture&wstoken=9f47591ed3f6cc53720f0dc4e81

参数

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": []

}

这里我有这个想法https://github.com/mrjleo/boilernet