私はmoodle Webサービスを使用しています。「/login/token.php」からトークンを取得していますが、それを取得した後はどうすればよいですか? そのトークンからユーザーIDを取得する方法、またはそれを使って何かをする方法に関するドキュメントが見つかりません。
4 に答える
名前+パスワードまたはトークンに基づいてユーザーを認証するメソッドが含まれているmoodle/webservice/lib.phpfunction authenticate_user()
を見てください。
これは を呼び出しますfunction authenticate_by_token
。これは、テーブルをチェックしexternal_tokens
てトークンが存在するかどうかを確認し、このトークンのユーザーを見つけて、認証されたユーザー オブジェクトを返します。
moodle/webservice/rest/server.phpを通過するときに、この関数にたどり着きました。私はmoodle 安定版リリース2.8.2+ (ビルド: 20150123)を使用しています。
トークンは、それを利用しようとするWebサービスコンシューマの認証として使用されるキーです。Web サービスの各機能に関連付けられています。
トークンがある場合は、client.php スクリプトでこのトークンを使用して、Web サービスが正しいかどうかを確認します。ユーザーがこの Web サービスを使用するたびに、そのトークンが必要になります。すべての Web サービス関数には一意のトークンがあります。
UI からトークンを生成するには、moodle サイトの管理者 -> プラグイン -> Web サービス -> トークンの管理に進みます。次に、関数を追加し、その特定の関数のトークンを生成します。
これが古いかどうかはわかりませんが、自分でつまずきました。多分これは他の人にも役立つかもしれません。
トークンを取得したら、API 呼び出しでそれを提供する必要があります。したがって、すべてのコースを取得する関数を追加したとします。次に、次の REST URL でコースを取得できます。
/moodle/webservice/rest/server.php?wstoken=d4ffd83ce0e2602a458b44e16634ab17&wsfunction=core_course_get_courses
wstoken は取得したトークンです。wsfuntion はサービス関数の名前です。
私は、moodle システムで役立つサービス関数のリストを見つけました。
moodle/admin/webservice/documentation.php
ここでは、引数と戻り値を確認できます。