1

使用 D2L Rest API 发送以下块在现有论坛中创建主题:

URL: POST /d2l/api/le/(D2LVERSION: version)/(D2LID: orgUnitId)/discussions/forums/(D2LID: forumId)/topics/

{
    "Name" : "Test Forum API",
    "Description" : {
        "Text" : "",
        "Html" : "Test"
    },
    "AllowAnonymousPosts" : true,
    "StartDate" : null,
    "EndDate" : null,
    "IsHidden" : false,
    "UnlockStartDate" : null,
    "UnlockEndDate" : null,
    "RequiresApproval" : false,
    "ScoreOutOf" : null,
    "IsAutoScore" : true,
    "IncludeNonScoredValues" : true,
    "ScoringType" : null,
    "IsLocked" : false,
    "MustPostToParticipate" : true
}

出现错误:INFO:已请求重定向但已禁用 followRedirects 状态代码 302 对象已移至 /d2l/error/404

4

2 回答 2

0

请注意,您必须通过 API 来创建新主题的 CreateTopicData 结构不会RichText输入的 Description 属性使用复合结构。相反,您必须使用RichTextInput复合结构,但略有不同:

{
    "Name" : "Test Forum API",
    "Description" : {
        "Content" : "Test",
        "Type": "HTML"
    },
    ...
}

但是,API 将在output上传回一个RichText结构。

使用我们的测试服务,向这样的 URL 发送 POST(假设组织 ID 为 8083,论坛 ID 为 4174)

https://myLMShost.edu/d2l/api/le/1.0/8083/discussions/forums/4174/topics/

我们传入了一个如下所示的 JSON 结构:

{'AllowAnonymousPosts': True,
 'Description': {'Content': 'test', 'Type': 'HTML'},
 'EndDate': None,
 'IncludeNonScoredValues': False,
 'IsAutoScore': True,
 'IsHidden': False,
 'IsLocked': False,
 'MustPostToParticipate': True,
 'Name': 'Test Forum API',
 'RequiresApproval': False,
 'ScoreOutOf': None,
 'ScoringType': None,
 'StartDate': None,
 'UnlockEndDate': None,
 'UnlockStartDate': None}

我们的测试服务返回了新的主题帖子,如下所示:

{'AllowAnonymousPosts': True,
 'Description': {'Html': 'test', 'Text': ''},
 'EndDate': None,
 'ForumId': 4174,
 'IncludeNonScoredValues': False,
 'IsAutoScore': True,
 'IsHidden': False,
 'IsLocked': False,
 'MustPostToParticipate': True,
 'Name': 'Test Forum API',
 'PinnedPostCount': 0,
 'RatingsCount': 0,
 'RatingsSum': 0,
 'RequiresApproval': False,
 'ScoreOutOf': None,
 'ScoredCount': 0,
 'ScoringType': None,
 'StartDate': None,
 'TopicId': 88569,
 'UnapprovedPostCount': 0,
 'UnlockEndDate': None,
 'UnlockStartDate': None}
于 2012-10-01T15:12:06.337 回答
0

发布和重定向不能一起工作。通常环境(负载均衡器或其他网络组件)会自动将所有 http 操作重定向到 https。那么您的客户端库实际上不会遵循 302。

如果启用了 https,您可能想要使用它,并且您可以让 D2L 库生成 https url。

(您可能还希望您正在使用的客户端 http 库遵循重定向,因为在某些情况下 GET 操作可能会被重定向)

于 2012-09-30T13:17:23.643 回答