D2L如何使用Rest API创建论坛主题?

时间:2012-09-29 15:42:47

标签: desire2learn

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

网址: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

2 个答案:

答案 0 :(得分:0)

发布和重定向无法一起使用。通常,环境(负载均衡器或其他网络组件)会自动将所有http操作重定向到https。然后您的客户端库实际上不会跟随302.

如果启用了https,您可能希望使用https,并且可以使D2L库生成https网址。

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

答案 1 :(得分:0)

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

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

然而,API会在输出上传回RichText结构。

使用我们的测试服务,使用POST到这样的URL(假设组织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}