2013-06-18 82 views
1

我有兩個問題涉及用戶數據集。正在檢索已通過身份驗證的用戶電子郵件

1. 在WHOAMI是UniqueName值相同用戶名中的UserData

User.WhoAmIUser

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

User.UserData

{ 
"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,但都返回「未經授權」。即使我的userId授權爲我自己的「/ d2l/api/lp /(D2LVERSION:version)/ users /(D2LID:userId)」也會拋出Not Authorized。

我已經嘗試了學生和教師角色。我可以檢索WhoAmI服務,而不是任何其他用戶服務。

謝謝。

回答

1

1)在User.WhoAmIUser結構將(應)存在於User.UserData相同的值作爲UserName屬性的屬性UniqueName:這是用戶的「登錄名」的LMS之內。在後端服務中,這兩個屬性可能會單獨維護,但對於所有意圖和目的,對於調用客戶端,它們應該包含相同的值(如果通過Web UI更改用戶記錄中的UserName值,然後進行WhoAmI呼叫,您會看到在WhoAmI結果中UniqueName屬性中顯示的更改)。

2)檢索用戶的電子郵件地址可能不是一個簡單的壯舉:在UserData記錄應包含在Email字段出現在Web UI中的用戶記錄的值相同的ExternalEmail屬性。這是LMS在需要向用戶發送密碼重置消息時使用的電子郵件地址。

此屬性受用戶信息隱私角色權限約束,有些組織可能會選擇嚴格限制可以看到該值的用戶。

此外,/d2l/api/lp/{ver}/users/路由本身通常受限於某些組織的角色權限。一般來說,如果您使用的是可以訪問LMS Web UI中的用戶工具功能的用戶角色進行調用,那麼該角色也應該能夠訪問此API路由。

如果您無權使用該API調用(並且您可能不會),則無法使用它查找用戶詳細信息。

User.UserEnrollment.ClasslistUser結構還包含一個屬性,用於存儲來自用戶記錄的電子郵件值,如果您可以調用以檢索這些結構(例如,註冊API調用或類列表API調用),則您可能有權訪問該處的電子郵件值,具體取決於主叫用戶擁有的用戶信息隱私權限。

所有這些的結果是許多組織的許多用戶將沒有權限從他們自己的用戶記錄中檢索他們自己的外部電子郵件地址,因爲他們可能沒有權限進行檢索它的調用,它不包含在WhoAmIUser結構中。

相關問題