我正在开展一个项目,我们计划将一些数据发送回Desire2Learn。我已经相当远了,我可以查询用户列表,我可以获取他们的个人资料ID,获取他们的个人资料,然后更新所述个人资料。
在查看文档时,我注意到,如果我调用/d2l/api/lp/1.3/users/?OrgDefinedId=123456789
,则只返回一个用户,如下所示。
[
{
"OrgId": "{{ORG_ID}}",
"UserId": 12345,
"FirstName": "Christopher",
"MiddleName": null,
"LastName": "Sterling",
"UserName": "csterli1",
"ExternalEmail": "{MY_EMAIL}",
"OrgDefinedId": "123456789",
"UniqueIdentifier": "{{UID}}",
"Activation": {
"IsActive": true
},
"DisplayName": "Chris Sterling"
}
]
我相信,我遇到的问题是,为了让我获取个人资料ID,我无法调用上面的网址,而是我必须致电/d2l/api/lp/1.3/enrollments/orgUnits/{{ORG_ID}}/users/
。该调用会返回配置文件ID,但它也会返回所有用户,增量为100。
我想知道的是,是否有一种方法可以将?OrgDefinedId传递给enrollments方法并让它返回用户对象?
如果情况并非如此,我想知道,有没有更好的方法来做我想做的事情。目前看起来我将进行大量调用以获取所有用户,以便我们可以获取给定用户的个人资料ID。
谢谢!
答案 0 :(得分:1)
目前,在注册调用中没有更好的过滤器,配置文件标识符也不会出现在.../users/
调用返回的管理用户数据记录中。
GET classlist for orgunit调用还返回包含用户配置文件标识符的数据,并以JSON数组而不是分页集返回数据。 Enrollment.ClasstlistUser结构包含LMS UserId(Identifier
)和用户配置文件ID(ProfileIdentifier
)数据,而 can 也包含OrgDefinedId
属性。但是,为了获取最后一个数据,必须将LMS配置为在Classlist工具中提供组织定义的ID。如果不是,那么要在配置文件标识符和组织定义的标识符之间建立联合,您需要使用LMS UserId作为公共值,并进行一系列调用以获取可以连接在一起的两个数据集。 / p>