Если ваш университет включил веб-службы для мобильного приложения, вы можете создать свой собственный токен API и вызывать веб-службы, используемые мобильным приложением. Если последние не включены, вам необходимо связаться со своим администратором, чтобы получить доступ к веб-службам.
Демонстрация с использованием moodle.org
Во-первых, давайте получим токен API (замените $PASSWORD
на свой пароль):
$ curl -d username="fmcorz" -d password="$PASSWORD" 'https://moodle.org/login/token.php?service=moodle_mobile_app'
{
"token":"SNIPTOKEN",
"privatetoken":"SNIPPRIVATE"
}
Далее нам понадобится ваш userid
, он будет использоваться при вызове других веб-сервисов. Вы можете получить userid
, позвонив в веб-службу core_webservice_get_site_info
. Обязательно замените $TOKEN
токеном, который вы получили выше.
$ curl -d wstoken="$TOKEN" -d wsfunction=core_webservice_get_site_info 'https://moodle.org/webservice/rest/server.php?moodlewsrestformat=json' | python -m json.tool | grep userid
"userid": 1451616,
Теперь, когда у вас есть userid
, мы можем запросить курсы, на которые вы зачислены.
$ curl -d wstoken="$TOKEN" -d wsfunction=core_enrol_get_users_courses -d userid=1451616 'https://moodle.org/webservice/rest/server.php?moodlewsrestformat=json' | python -m json.tool
[
{
...snip...
"fullname": "Moodle in English",
"id": 5,
...snip...
},
{
...snip...
"fullname": "Moodle en fran\u00e7ais",
"id": 20,
...snip...
},
{
...snip...
"fullname": "Moodle Certification",
"id": 48,
...snip...
}
]
Подведение итогов
Предварительные требования:
- Веб-службы Mobile App должны быть включены.
- Протокол REST должен быть включен.
- Вам нужен токен API
Запрос:
- Запросы направляются на
YOURHOST/webservice/rest/server.php?moodlewsrestformat=json
.
- Запросов должно быть
POST
запросов
- Запросы должны содержать
wstoken
: Ваш токен
- Запросы должны содержать
wsfunction
: функция, которую вы вызываете
- Тип запроса должен быть:
application/x-www-form-urlencoded
Еще
Я значительно упростил, как это работает и какие есть альтернативы, но это должно помочь вам начать. Вам, вероятно, будет интересно просмотреть документацию для разработчиков, чтобы получить больше информации о доступных веб-сервисах:
person
FMCorz
schedule
22.06.2017