Moodle: получить изображение пользователя от веб-сервиса

1

Используя Moodle Web Service (REST) call core_user_get_users_by_field я успешно получаю информацию о пользователе. Одним из возвращаемых полей является profileimageurl который ссылается на мое изображение профиля пользователя и выглядит следующим образом:

http://my_moodle_server/pluginfile.php/89/user/icon/f1

К сожалению, эта ссылка работает только в браузере, где я уже вошел в систему, иначе он будет перенаправлен на стандартный значок пользователя (серый анонимный объект).

Поэтому, чтобы получить реальную форму изображения клиентского приложения, использующего веб-службы moodle, я думаю, что мне нужно вызвать core_files_get_files и передать правильные значения. Поэтому я попытался переназначить эту ссылку на вызовы paramenters следующим образом:

contextid: 89
component: "user"
filearea: "icon"
itemid: 0
filepath: "/"
filename: "f1.png" (also tryed without .png)
and of course my valid token

но все, что я получаю, это:

{"parents":[],"files":[]}

Параметры кажутся формально правильными (иначе я бы получил исключение), но я получаю только пустой ответ, который говорит мне, что некоторые значения неверны.

Теги:
moodle
web-services

1 ответ

1
Лучший ответ

Хорошо, я нашел решение своей проблемы. Я также размещаю ответ здесь, потому что не так много информации о веб-сервисе Moodle...

Прежде всего, core_files_get_files не так... он будет показывать только информацию о файлах, он не даст вам фактического содержимого файла (двоичного).

К счастью, есть эквивалентный URL-адрес, который будет использоваться при вызове из внешнего клиентского приложения:

http://my_moodle_server/ webservice/pluginfile.php

Он принимает те же параметры/формат, что и http://my_moodle_server/pluginfile.php, и, кроме того, вы также можете передать токен для аутентификации веб-сервиса.

Поэтому поле profileimageurl возвращаемое core_user_get_users_by_field выглядит следующим образом:

http://my_moodle_server/pluginfile.php/89/user/icon/f1

можно превратить в

http://my_moodle_server/webservice/pluginfile.php/89/user/icon/f1?token=my_web_service_token

Также обратите внимание, что требуется добавить параметр ?token=

  • 0
    я сталкиваюсь с той же проблемой, чтобы получить список файлов Myrpivate, как получить их из части веб-сервиса Вот URL-адрес, который я сделал webservice / rest / server.php? wstoken = 3afe18c8697dac9518d59bb8f10429b4 & wsfunction = core_files_get_files & moodlewsrestformat & file = file_f = и file = компонент 0 file & file = компонент 0 file & компонент = file 0 file & компонент = file 2x_px = item & file_t = 2 & amp;
  • 0
    На странице admin / webservice / service.php? Id = 2 мы разрешаем загрузку. Это решит нашу проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню