2013-05-28 31 views
1

我正在致力於通過API在D2L中更改用戶密碼的過程。我使用PHP。檢索用戶ID以更改用戶密碼

我需要從另一個系統推送用戶密碼更改爲D2L。當用戶在我們的門戶中更改其密碼時的示例,我想打電話通過API更新D2L中的密碼。在尋找過的文檔,我需要用戶的「用戶名」,使PUT調用這樣:

PUT system/d2l/api/lp/1.0/users/UserID/password 
{"Password": "HelloWorld5"} 

如何我獲得這個用戶名?我可以做一個WhoAmI呼叫,但只對登錄用戶有效。我沒有看到一個API,我可以通過UserName調用用戶帳戶並獲取其用戶ID。

  • 請記住,在此密碼更改期間用戶不會登錄到D2L,並且門戶網站沒有存儲用戶標識。所以我需要能夠獲得用戶名,然後進行密碼更改調用。

回答

0

要根據自己的用戶名獲得用戶ID的用戶,請使用以下調用:

/d2l/api/lp/{VERSION}/users/

它可以把用戶名作爲參數(用戶名),否則它會返回一個完整(但分頁)用戶列表。請注意,此調用需要足夠的(管理員權限等)

+1

請注意,'用戶'API調用確實可以根據'OrgDefinedId'或'UserName'查找用戶記錄;但是,如果您以這種方式使用呼叫,那麼它只會查找精確匹配(因此您必須提供精確器UserName或OrgDefinedId)。另請注意,如果您試圖通過OrgDefinedId查找用戶,則返回的結構是一組用戶記錄(因爲OrgDefinedId不一定是某些組織的唯一屬性);如果您試圖通過UserName查找用戶,則返回的結構(如果匹配)將是單個UserData結構。 –

+1

使用GET系統/ d2l/api/lp/1.0/users/<訪問用戶信息<-I只能讓D2L用戶標識在此處工作以取回用戶信息。如果我嘗試使用唯一的UserName或OrgDefinedID,則會返回404錯誤。示例:我們系統中的用戶具有3900的用戶ID。我可以使用用戶ID獲取數據並更新密碼,但是如果我嘗試另外兩個404錯誤發生。 「UserId」:3900, 「UserName」:「hefnerj」, 「OrgDefinedId」:「910292538」 –

+0

要使用userName作爲該調用的參數,請執行GET到/d2l/api/lp/1.0/ users /?userName = '(查詢參數在路由之後,以?開頭,以鍵符=值對中的符號分隔)。 –