2013-05-28 32 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 = '(查询参数在路由之后,以?开头,以键符=值对中的符号分隔)。 –