1

「/d2l/api/le/(D2LVERSION: version)/(D2LID: orgUnitId)/content/modules/(D2LID: moduleId)/structure/」への GET 呼び出しを行うたびに、提供された moduleId のコンテンツのリストを取得します。構造。ただし、POST 呼び出しを行うと、Page Not Found エラーが発生します。orgUnitId をコンテンツを追加したいコースの ID に置き換え、moduleId をコンテンツを挿入したいモジュールの ID に置き換えました。送信する JSON ブロックは次のとおりです。

{"StartDate":null,
"Title":"My Test File",
"Type":1,
"ShortTitle":"MTF",
"TopicType":3,
"EndDate":null,
"IsHidden":false,
"Url":"http://somecollege.edu/",
"IsLocked":false}

取得ではなく投稿でページが見つからないというエラーが発生する理由がわかりません。誰にもアイデアはありますか?

4

1 に答える 1

1

テスト サーバーに同様のリンク トピックを投稿することに成功しました。HTTP パケット (wireshark によってキャプチャ) は次のようになります。

POST /d2l/api/le/1.2/8083/content/modules/24980/structure/?x_t={timestamp}&x_a={app_id}&x_b={user_id}&x_d={user_sig}&x_c={app_sig} HTTP/1.1\r\n
Host: {test_hostname}\r\n
Content-Length: 186\r\n
Content-Type: application/json\r\n
Accept-Encoding: identity, deflate, compress, gzip\r\n
Accept: */*\r\n
\r\n

JavaScript Object Notation: application/json
Object
    Member Key: "StartDate"
        Null value
    Member Key: "TopicType"
        Number value: 3
    Member Key: "ShortTitle"
        String value: MTF
    Member Key: "Title"
        String value: My Test File
    Member Key: "Url"
        String value: http://www.desire2learn.com/
    Member Key: "IsHidden"
        False value
    Member Key: "IsLocked"
        False value
    Member Key: "EndDate"
        Null value
    Member Key: "Type"
        Number value: 1

送信された UTF-8 文字列として出力された JSON データは次のようになります。

{"StartDate": null, "TopicType": 3, "ShortTitle": "MTF", "Title": "My Test File", "Url": "http://www.desire2learn.com/", "IsHidden": false, "IsLocked": false, "EndDate": null, "Type": 1}

私たちの JSON とあなたの JSON の間に大きな違いは見られないので、実際に送信しているパケットに問題がある可能性があります。404 は、使用しているルートが正しくないことを示しています (たとえば、ルートの「構造」の後にスラッシュが必要です)。

呼び出しを行っているユーザー コンテキストのアクセス許可の問題が発生している可能性もあります。コース コンテンツ (および構造)を表示するためのロール権限は、コース コンテンツを作成および管理するための権限とは異なることに注意してください。呼び出しを行っているユーザー コンテキストに、コース コンテンツを表示するだけでなく、コンテンツを作成および管理するための適切なアクセス許可を付与するロールがあることを確認する必要があります。

これらの提案のいずれも役に立たない場合は、次のレベルのサポートにエスカレーションすることをお勧めします (Valence の D2L の問題トラッカーで問題を開くか、Valence サポートの電子メール アドレスに連絡してください)。前方へ。

于 2012-09-13T13:53:48.337 に答える