問題タブ [moodle-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3376 参照

moodle - Apiを使用したコースへのMoodleユーザー登録

私は Moodle を初めて使用しますが、ローカル サーバーにサイトをセットアップしています。新しいコース、ユーザーを作成しました。Javascript API を使用して、特定のコース (管理者側を使用して作成) に患者を登録したいと考えています。ユーザーをコースに登録するためのオプションです。登録セクションの Api が見つかりませんでした

0 投票する
1 に答える
1883 参照

wso2 - WSO2 - Api Manager - 投稿本文パラメータを URL クエリ文字列として Moodle に渡す

インターネットに公開したい Moodle LMS からいくつかの内部 API へのアクセスを処理するために、WSO2-AM を実装しています。

WSO2 経由でこの LMS へのアクセスを構成していますが、解決できない問題に遭遇しました。

WSO2 のドキュメントが広範囲にわたることは認識していますが、この構成の特定のインスタンスを実際に見つけることはできませんでした。

背景: Moodle 自体は非常に非標準的な方法で API を実装しています。彼らはそれらを REST と呼んでいますが、真の休息ではありません。ユーザー トークンなどの一部のパラメーターは、クエリ自体の本文でヘッダーを使用するのではなく、URL クエリ文字列で渡されます。

まず、WSO2 で 2 つの API を構成しました。1 つは Moodle からユーザー トークンを要求するため (Moodle では、特定のユーザーに API へのアクセスを許可するためにこれが必要です)、もう 1 つはユーザーが登録したコース リストを取得するためです。

WSO2 経由で Moodle からユーザー トークンを取得する最初の要求は、期待どおりに進行します。ユーザー名/パスワード/サービス パラメーターをヘッダー経由で (HTTPS 経由で暗号化されるように) ヘッダーを介して渡し、POST として Moodle にプッシュします。WSO2 を介した Moodle からの応答は期待どおりで、クラ​​イアントが解析して後続の要求で使用するトークンを含む JSON ペイロードです。

次のリクエストは、ユーザーが登録したコースを取得するために、Moodle でより便利なサービスを呼び出すことです。ここには、解決方法がわからない 2 つの問題があります。

問題: Moodle は、Web サービスへの呼び出しに GET または POST パラメータを期待します。テストに便利な GET を使用している場合、クライアントから WSO2 に渡されたパラメーターが間違っている (「userid」の場合) か、欠落している (投稿にある wstoken フィールドの場合)。体)。

API パブリッシャーでは、{version}/courses/{userid} の URL パターンで POST 用に構成された WSO2 の API を持っています。API 定義は次のように構成されています。 API 定義

API エンドポイントの構成は次のとおりです。 API エンドポイントの構成

URL: http://(moodleurl)/webservice/rest/server.php?wstoken= {uri.var.wstoken}&wsfunction=core_enrol_get_users_courses&moodlewsrestformat=json&userid={uri.var.userid}

Apache ホスティング Moodle が受け取る GET URL は次のとおりです: xx.xx.xx.xx - - [09/Aug/2016:10:36:03 +0930] "POST /webservice/rest/server.php?wstoken=&wsfunction=core_enrol_get_users_courses&moodlewsrestformat =json&userid=6/6 HTTP/1.1" 200 270

したがって、2 つの問題は、「wstoken」パラメーター (WSO2 に提供される投稿本文にある) の欠落と、「userid」がアイテム間のスラッシュで二重になっていることです。

プロキシ経由でクライアントを実行しましたが、データは WSO2 に正しく送信されているようです。 クライアント -> WSO2 プロキシ

だから私はこれらの問題について何ができるのだろうかと思っています:

サービス API アドレスへの URL に投稿された本文パラメーターを正しく含めるために使用できる別の URL パラメーターはありますか?

userid パラメータがこのように壊れる原因となっている特定の構成上の問題はありますか?

クライアントから投稿されたパラメーターは、WSO2 による Moodle への投稿に含まれているようです。したがって、それらは URL から削除され、単に WSO2 によって Moodle への投稿本文に含まれる可能性があります。つまり、これを機能させるために解決する必要があるのは、userid パラメータの問題だけである可能性が高いことを意味します - 残念ながら私はそうではありませんWSO2 と Moodle 自体の間にプロキシを配置して、Wireshark を使用せずに、API にポストされたパラメータを検証する方法を確認してください。

0 投票する
1 に答える
1115 参照

php - Moodle登録フォーム変更アクションURL

助けてください。

0 投票する
0 に答える
1380 参照

javascript - MOODLE を使用してユーザーを作成し、Web サービス API を介してコースに登録する

Web サービス API を介して特定のコースにユーザーを登録する方法、トークン、ユーザー資格情報、およびコースの詳細があります。リクエストの作成方法は?

このようなコースへの登録を実装しようとしています

しかし、それはエラーを出します..Pls Help

0 投票する
1 に答える
2561 参照

moodle - Moodleカスタムサービス作成の問題

機能強化のためにMoodleカスタムサービスを作成しようとしています

これらのドキュメントに基づいて更新されたサービス モジュール。作成されたサービス モジュールと external_lib.php ファイル。しかし、Web サービス API へのアクセス中にエラーが発生しました

エラー: {"exception":"dml_missing_record_exception","errorcode":"invalidrecord","message":"データベース テーブル external_functions にデータ レコードが見つかりません。"}

デバッグ モードを有効にして、再試行しました。外部関数登録エラーを示します。

Moodle内で新しく作成したサービスを登録するにはどうすればよいですか? Plsヘルプ

0 投票する
1 に答える
2481 参照

php - コースモジュールのインスタンスを取得したい

tl;dr; mysqlまたは公式のmoodle apiを介してコースモジュールを介してコースモジュールインスタンスを取得しようとしています。最終的に私の解決策はかなりくだらないように思えるので、アドバイスをお願いします。

こんにちはムードルの人々

mdl_course_modules の各行に対応するコース モジュール インスタンスを取得しようとしています。このコンテキストのインスタンスは、mdl_quiz、mdl_wiki、またはその他の course_modules インスタンスからの単一の行になります。

私はいくつかのことを試しましたが、私が期待していたのは次のとおりでした:

$mod_info からコース モジュールのインスタンスを取得できませんでした。

そこで、代わりにカスタム mysql を実行しようとしましたが、

SQL はまだ完成していません。さまざまなコース モジュールのすべてを事前に知っているわけではないという事実に出くわしました。つまり、course_module の名前を動的に使用して、参加するインスタンス テーブルを選択する必要があります。可能性のあるすべてのコースモジュールインスタンステーブルでLEFT JOINするだけですが、それには永遠に時間がかかり、誰かが新しいコースモジュールインスタンスを入れると機能しなくなります.

現在、次のことを行っています。

この最後のコードは最終的に機能し、$course_mod->instance、$course_mod->mod_name などの $course_mod 変数からクエリを動的に作成できるようになります。

でも、これは厳しそうですね。course_module インスタンスをより簡単な方法で取得することに成功した人はいますか??

ありがとう!!

0 投票する
1 に答える
430 参照

moodle - モバイルアプリでMoodleコースの完了ステータスが更新されない

新しいコースとコースのいくつかのトピックを作成し、管理者側でコースの追跡設定を設定します。ユーザーがレッスン (コース レッスン) のステータス (読み取り/表示ステータス) を手動でクローズする権限を追加しました。Web アプリケーションでは、ユーザーがレッスンを完了したことを示すステータス (チェック マーク) ここに画像の説明を入力

そのため、Web アプリケーションの管理側では、完了したアクティビティが表示されます。

しかし、モバイルアプリでコース情報にアクセスすると、PHP の基本と PHP5 構文セクションが開始されていないことが示されます

ここに画像の説明を入力

私はこのセクションで立ち往生しています。助けてください

0 投票する
1 に答える
3229 参照

moodle - Moodleにアップロードされた画像のパスを取得

会社のロゴを保存するカスタム列を追加しました。次のようなmoodleのファイルAPIを使用しました:

フォームが送信されると、itemid がカスタム列に保存されます。「648557354」と言います

ここで、証明書にロゴを印刷するための画像を取得する必要があります。itemidから画像パスを取得するにはどうすればよいですか? 画像を取得するために他の情報を保存する必要はありますか?

0 投票する
3 に答える
1834 参照

moodle - Moodle 設定権限は無効です

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

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

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

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

ロール権限設定ページ

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

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

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

これの原因は何ですか?

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