1

我有两个与用户数据集相关的问题。

1. WhoAmI 中的 UniqueName 是否与 UserData 中的 UserName 相同

User.WhoAmIUser

{
"Identifier": "<string:D2LID>",
"FirstName": "<string>",
"LastName": "<string>",
"UniqueName": "<string>",
"ProfileIdentifier": "<string:D2LID>"
}

用户.用户数据

{
"OrgId": "<number:D2LID>",
"UserId": "<number:D2LID>",
"FirstName": "<string>",
"MiddleName": "<string>",
"LastName": "<string>",
"UserName": "<string>",
"ExternalEmail": "<string>",
"OrgDefinedId": "<string>",
"UniqueIdentifier": "<string>",
"Activation": "{composite:User.UserActivationData}"
}

2. 如何找回当前认证用户的邮箱?我尝试连接到各种用户 API,但都返回“未授权”。即使是“/d2l/api/lp/(D2LVERSION: version)/users/(D2LID: userId)”,我的 userId 被我自己授权,也会抛出 Not Authorized。

我已经尝试过学生和教师角色。我可以检索 WhoAmI 服务,但不能检索任何其他用户服务。

谢谢。

4

1 回答 1

1

1)结构UniqueName中的属性将(应该)呈现与 中的属性User.WhoAmIUser相同的值:这是用户在 LMS 中的“登录名”。在后端服务中,这两个属性可能会分开维护,但出于所有意图和目的,对于调用客户端,它们应该包含相同的值(如果您通过 Web UI 更改用户记录中的值,然后拨打 WhoAmI 电话,您会看到更改显示在WhoAmI 结果的属性中)。UserNameUser.UserDataUserNameUniqueName

2) 检索用户的电子邮件地址可能不是一件简单的事:记录ExternalEmail中的属性UserData应该包含与EmailWeb UI 中用户记录的字段中出现的值相同的值。这是 LMS 在需要向用户发送密码重置消息时使用的电子邮件地址。

此属性受用户信息隐私角色权限的约束,某些组织可能会选择严格限制谁可以看到该值。

此外,/d2l/api/lp/{ver}/users/路由本身通常受到某些组织的限制性角色权限。一般来说,如果您使用可以访问 LMS Web UI 中用户工具功能的用户角色进行呼叫,则该角色也应该能够访问此 API 路由。

如果您没有使用该 API 调用的权限(您可能没有),那么您不能使用它来查找用户详细信息。

和结构还包含一个属性来容纳来自用户记录的电子邮件值User.UserEnrollment.ClasslistUser如果您可以调用来检索这些结构(例如,注册 API 调用或类列表 API 调用),那么您可能有权访问那里的电子邮件值,取决于调用用户拥有的用户信息隐私权限。

所有这一切的结果是,许多组织中的许多用户将无权从他们自己的用户记录中检索他们自己的外部电子邮件地址,因为他们可能无权进行调用来检索它,并且它不包含在内在WhoAmIUser结构中。

于 2013-06-20T13:39:35.153 回答