Можно ли отправить запрос POST с внешнего сервера в Moodle, а затем, уже в Moodle, выполнить некоторые действия с данными и сохранить их в БД (таблица БД, созданная локальным плагином).
Есть ли возможность сделать это?
Спасибо всем за помощь.
Вы можете использовать веб-сервисы
https://docs.moodle.org/dev/Web_services
Вот несколько кратких инструкций
/admin/search.php?query=enablewebservices
/admin/settings.php?section=webserviceprotocols
/admin/settings.php?section=externalservices
/admin/roles/manage.php
webservice/rest:use
/admin/settings.php?section=webservicetokens
Затем в php
Вы можете сделать что-то вроде этого:
$tokenurl = 'http://[url]/login/token.php?username=xxx&password=xxx&service=yourserviceshortname';
$tokenresponse = file_get_contents($tokenurl->out(false));
$tokenobject = json_decode($tokenresponse);
if (!empty($tokenobject->error)) {
echo $tokenobject->error;
die();
}
$functionurl = 'http://[url]/webservice/rest/server.php';
$functionurl .= '?wstoken=' . $tokenobject->token;
$functionurl .= '&wsfunction=functionname';
$functionurl .= '&moodlewsrestformat=json';
$functionurl .= '¶m1=xxx';
$functionurl .= '¶m2=yyy';
$functionresponse = file_get_contents($functionurl);
$object = json_decode($functionresponse);
var_dump($object);
Полный список доступных функций см. /admin/webservice/documentation.php
Других решений пока нет …