0

Moodle 3.0.5 で REST Web サービスを構成してcore_course_get_courses、利用可能なすべてのコースに関する基本情報を含む応答を返す関数を使用しました。

これは私が使用している URL です。

https://example.com/webservice/rest/server.php?wstoken=713898e3fcaf9ead2218eb7565993230&wsfunction=core_course_get_courses&moodlewsrestformat=json

そして、これは私が得るものです:

{
  "exception": "required_capability_exception",
  "errorcode": "nopermissions",
  "message": "Sorry, but you do not currently have permissions to do that (View courses without participation)"
}

問題のアクセス許可は最初から設定されています。つまり、次のとおりです。

moodle/course:view

ロール権限設定ページ

効果はありません。機能するかどうかを確認するためだけに、数百のアクセス許可をすべて許可しましたが、それでも効果はありませんでした。

同じサービスで別の関数を使用しましたが、うまくいきます!:

core_enrol_get_enrolled_users

もう 1 つの重要な事実はcore_course_get_courses、Moodle を新規インストールしたローカルの開発マシンで機能が動作することです。本番環境には、50 個の追加プラグインがインストールされています。デバッグ、「開発者向けの追加の Moodle デバッグ メッセージ」が有効になっていますが、エラーは表示されていません。

これの原因は何ですか?

PS開発。マシンはUbuntu 14.04です

4

3 に答える 3

0

トークンを持つユーザーは機能にアクセスできますか?

サイト管理者 -> プラグイン -> Web サービス -> トークンの管理で、トークンを持つユーザーを見つけます。

または直接/admin/settings.php?section=webservicetokens

次に、サイト管理者 -> ユーザー -> パーミッション -> システム パーミッションのチェックでユーザーの機能を確認します。

または直接/admin/roles/check.php?contextid=1

問題ないように見える場合は、そのユーザーがコースの他のユーザーのリストにあるかどうかを確認してください - https://docs.moodle.org/31/en/Other_users

コースに移動し、コース管理者 -> ユーザー -> 他のユーザー

または直接/enrol/otherusers.php?id=#(#=courseid)

ユーザーはそのリストに含まれていますか?

于 2016-08-30T12:25:54.117 に答える