ID388 (Booklet p.27)
Moodle Web Service を用いた バルク評定インポート
Bulk Grade Import
with Moodle Web Service
樋口三郎 ( 龍谷大学理工学部 )
Saburo Higuchi (Ryukoku University)
hHp://hig3.net
どんな発表 ?
• 他のシステム内の学習履歴 ( 評点 + フィードバック )
– 他の LMS – Excel 成績表
• やりたいこと
– Moodle オフライン課題や Gradebook に自動的に集約
• やりたくないこと
– Moodle プラグイン開発
– Moodle ソース改変
• Moodle 2.8.3+
• Moodle Web Service とは
– HTTP で Moodle に機能実行を指令 , データ転送する機能
評定インポートとは
LT293(at 東京家政大 2013) ユーザ視点から見た
種々の評定インポート方法 Grade Import Techniques
for Moodle 2.4
樋口三郎 ( 龍谷大学 ) http://hig3.net Saburo Higuchi (Ryukoku University)
龍谷大学
比較
CSV XML Grade Publishing
LTI v1 Web Service
☺ 基本的 柔軟
対話的
非対話的 自動化可能 とりあえず 動く
標準化 標準化
なんでもで きる ( はず )
☹ 自動化不可 識別子固定 危険
受験のた びに 1 名 ずつ
まだ実装が ない
認証 Moodle User IP + key as OAuth OAuth
どんな報告者 ?
• 龍谷大学 理工学部 数理情報学科 ( 教員 )
– 全学の仕様策定・運用側ではない
• Moodle 歴
– 全学サーバの教員ユーザ 2006-‐(1.x-‐)
– 自前サーバ (2.7) の管理者 + 教員ユーザ 2012-‐
– 学内的 LMS 普及活動 2008,2013,…
– Mahara , 他 Web アプリ併用
• こんな科目
– 計算科学☆演習 II, 確率統計☆演習 I, (1 年生向け計算機科学 導入科目 ),(3 年生向けキャリア開発科目 ),(3,4 年生向け卒業研 究 ),( インターンシップ科目 ),TA 向け , 学科学生向け
• 龍谷大学全学 = 情報メディアセンターの LMS
Moodle → Moodle 2.7LTS + Manaba course (2015)
• Introduc^on
• Demonstra^on
• Moodle Web Servicre とは
• 実装
• 比較と考察
Demo
Web Service Client
プラウザ
• サイト管理者が Web Service 有効化
• コース教員が token 生成
• Moodle の `token’ を預ける
• 目的に応じてプログラム HTTP
hHps://gist.github.com/hig3/
クライアントから / バッチ処理も可能
• 管理者が Web Service 有効化
• 評定を管理できるコースの教員
wget, curl を用いた script
Moodle Web Serviceとは
Moodle Web Service in 5 minutes
• ( 要サイト管理者権限 ) 1 個の Moodle サーバで
• Web Service 機能 ( 総称 ) を有効化
• 複数の Web Service ( 可算名詞 ) を定義
– Moodle Mobile Web Service (Built-‐in) – External Service 1 (Custom)
– External Service 2 (Custom)
– …
Web Service (External)
• 1 個の Web Service は , 次で定義される
– Web Service が使用できる Web Service 関数群 = 機能
• 必要な capability 群が定まる
– Web Service を使用できるユーザ群
• 全員の使用を許す選択肢もあり
• Userid による制限
• ユーザが持つべき capability による制限
• Capabiilty: Moodle において , ユーザが特定の機能を実行
できる権限
Moodle Web Service 関数
• hHps://tracker.moodle.org/browse/
MDL-‐29934
• Administra^on > Site administra^on > Plugins
> Web Services > API Documenta^on
core_calendar_create_calendar_events core_calendar_delete_calendar_events core_calendar_get_calendar_events core_cohort_add_cohort_members core_cohort_create_cohorts core_cohort_delete_cohort_members core_cohort_delete_cohorts core_cohort_get_cohort_members core_cohort_get_cohorts core_cohort_update_cohorts core_course_create_categories core_course_create_courses core_course_delete_categories core_course_delete_courses core_course_delete_modules core_course_duplicate_course core_course_get_categories core_course_get_contents core_course_get_courses core_course_import_course core_course_update_categories core_course_update_courses
core_enrol_get_course_enrolment_methods core_enrol_get_enrolled_users
core_enrol_get_enrolled_users_with_capability core_enrol_get_users_courses
core_files_get_files core_files_upload core_get_component_strings core_get_string
core_get_strings core_grade_get_defini^ons core_grades_get_grades core_grades_update_grades core_grading_get_defini^ons
core_grading_get_gradingform_instances core_grading_save_defini^ons core_group_add_group_members core_group_assign_grouping core_group_create_groupings core_group_create_groups core_group_delete_group_members core_group_delete_groupings core_group_delete_groups core_group_get_course_groupings core_group_get_course_groups core_group_get_group_members core_group_get_groupings core_group_get_groups core_group_unassign_grouping core_group_update_groupings core_message_block_contacts core_message_create_contacts core_message_delete_contacts
core_notes_create_notes core_notes_delete_notes core_notes_get_notes core_notes_update_notes core_role_assign_roles core_role_unassign_roles core_user_add_user_device core_user_create_users core_user_delete_users
core_user_get_course_user_profiles core_user_get_users
core_user_get_users_by_field core_user_get_users_by_id core_user_update_users core_webservice_get_site_info enrol_manual_enrol_users enrol_self_get_instance_info
message_airno^fier_are_no^fica^on_preferences_configured message_airno^fier_is_system_configured
mod_assign_get_assignments mod_assign_get_grades mod_assign_get_submissions mod_assign_get_user_flags mod_assign_get_user_mappings mod_assign_lock_submissions mod_assign_reveal_iden^^es
mod_assign_revert_submissions_to_drah mod_assign_save_grade
mod_assign_save_grades mod_assign_save_submission mod_assign_save_user_extensions mod_assign_set_user_flags mod_assign_submit_for_grading mod_assign_unlock_submissions mod_forum_get_forum_discussion_posts mod_forum_get_forum_discussions mod_forum_get_forum_discussions_paginated mod_forum_get_forums_by_courses moodle_course_create_courses moodle_course_get_courses moodle_enrol_get_enrolled_users moodle_enrol_get_users_courses moodle_enrol_manual_enrol_users moodle_file_get_files
moodle_file_upload
moodle_group_add_groupmembers moodle_group_create_groups moodle_group_delete_groupmembers moodle_group_delete_groups moodle_group_get_course_groups moodle_group_get_groupmembers moodle_group_get_groups
moodle_message_send_instantmessages moodle_notes_create_notes