Hi everybody,
I'm trying to automatically integrate Moodle users and their courses with our ERP...
WS API is great and can answer all my problem except one...
How to upload pictures avatars to each my users ?
It's possible to push ZIP files in web interface Admin>Users>Accounts>Avatars ...
So I suppose I have to use core_files_upload but,
- what parameters to use ?
- how to say "no update" and "use username as filename" ?
- and do I have to push ZIP with multiple pictures or only one at a time as ZIP, JPG, GIF ou PNG ?
Thanx for answers if there are !
Best Regards
So, I've found that this is possible by core_files_upload always return error :'(
My Request content :
And the server answer :
HTTP/1.1 500 Internal Service Error
My Request content :
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="https://xxx.xxx/webservice/soap/server.php?wstoken=xxx">
<soapenv:Header/>
<soapenv:Body>
<ser:core_files_upload soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<component xsi:type="xsd:string">user</component>
<filearea xsi:type="xsd:string">draft</filearea>
<itemid xsi:type="xsd:int">0</itemid>
<filepath xsi:type="xsd:string">/</filepath>
<filename xsi:type="xsd:string">4400.png</filename>
<filecontent xsi:type="xsd:string">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</filecontent>
<contextlevel>user</contextlevel>
<instanceid>4400</instanceid>
</ser:core_files_upload>
</soapenv:Body>
</soapenv:Envelope>
And the server answer :
HTTP/1.1 500 Internal Service Error
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>Receiver</faultcode>
<faultstring>Fichier non spécifié | ERRORCODE: nofile</faultstring>
<faultactor>nofile</faultactor>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Here is the solution :
You musn't use userid of the user you want to push file but the userid of webservice connected user !
Then it works well, and you get this as response :
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https:/xxx.xxx/webservice/soap/server.php?wstoken=xxxx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:core_files_uploadResponse>
<return xsi:type="ns1:webservices_struct_class_000004">
<contextid xsi:type="xsd:int">24303</contextid>
<component xsi:type="xsd:string">user</component>
<filearea xsi:type="xsd:string">draft</filearea>
<itemid xsi:type="xsd:int">590650280</itemid>
<filepath xsi:type="xsd:string">/</filepath>
<filename xsi:type="xsd:string">4400.jpg</filename>
<url xsi:type="xsd:string">https://xxx.xxx/draftfile.php/24303/user/draft/590650280/4400.jpg</url>
</return>
</ns1:core_files_uploadResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
You can then use itemid with this other command to link the uploaded file to your user : core_user_update_picture
Will be happy to help if you got problems with this particular subject but for other webservice question about XML / SOAP requesting.