我目前是大學的學生,每天都在使用Moodle。 我想訪問我可以獲得的一些信息(例如,我正在參加的課程的信息,哪些作業到期以及何時等)作爲學生從Moodle API獲取信息
我對Moodle的API做了一些研究,但似乎面向實際運行Moodle(我的大學)的高級用戶。
作爲學生獲取信息,我有一種簡單的方法嗎?
我的應用程序使用Node.js的
我目前是大學的學生,每天都在使用Moodle。 我想訪問我可以獲得的一些信息(例如,我正在參加的課程的信息,哪些作業到期以及何時等)作爲學生從Moodle API獲取信息
我對Moodle的API做了一些研究,但似乎面向實際運行Moodle(我的大學)的高級用戶。
作爲學生獲取信息,我有一種簡單的方法嗎?
我的應用程序使用Node.js的
如果你的大學已啓用Web服務的移動應用程序,你可以生成自己的API令牌和調用由移動應用程序使用的Web服務。如果後者未啓用,則必須聯繫管理員以獲取Web服務訪問權限。
演示使用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
,這將在整個其他使用Web服務調用。您可以撥打網絡服務core_webservice_get_site_info
以獲得您的userid
。確保使用您在上面獲得的令牌替換$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...
}
]
重溫」
先決條件:
查詢:
YOURHOST/webservice/rest/server.php?moodlewsrestformat=json
製造。POST
請求wstoken
:您的令牌wsfunction
:您呼叫application/x-www-form-urlencoded
更多
我已經大大簡化了它的工作原理和內容有替代品,但這應該讓你開始。你可能有興趣在尋找開發者文檔,以獲取有關可用的Web服務的詳細信息:
如果沒有學生的API你必須嘗試一些像解析HTML和... –