我们的一个集成使用D2LWS UserManagementService将用户名转换为userId。当学生单击LTI请求时,我们会收到学生的用户名、名字和姓氏,但对于其他一些Valence API调用,我们需要数字userId。
我们希望在D2LWS退役之前减少对它们的依赖,所以我们想知道是否有一个等效的Valence API调用可以用来执行这种转换?
发布于 2013-10-01 20:39:08
客户端应用程序有许多方法来填写其对LMS用户身份属性的理解。还值得注意的是,D2LWS平台本质上针对服务到服务级别的操作信任进行了优化,而较新的Valence平台针对用户到服务的操作信任进行了优化--这意味着所有的Valence调用都必须发生在某个真实的、经过身份验证的LMS用户帐户的上下文中(从这个意义上讲,为了进行调用,客户端应用程序必须首先请求获取经过身份验证的用户的用户ID/密钥对)。
如果您的客户端服务总是由LMS在LTI启动时联系或提示,那么您将有足够的容量从该启动开始(请参阅此detailed topic on combining Valence calls with LTI around our Remote Plugin service)。应该有一个真正的LMS用户,它会以某种方式从登录的LMS会话启动该启动。因此,在LTI启动之后,您的服务可以转过身来调用LMS,为当前授权的用户请求用户令牌,而这个用户几乎肯定是启动LTI的用户。
通常,对于从LTI启动时联系到并希望使用Valence的服务,我们建议您在启动后立即建立用户上下文并创建一个whoami call:这可以有多种用途--它可以确定您有一组可靠的用户令牌,可以用来代表启动用户进行Valence调用,并且您可以使用在WhoAmIUser data structure中检索到的信息来帮助填写用户身份的上下文。
出于特定目的,WhoAmIUser数据结构包含启动用户的名字、姓氏、唯一名称(用户名)和LMS配置文件标识符,以及LMS用户标识符(Identifier)属性,如果需要,可以在其他Valence调用的上下文中使用该属性。但是,您还应该认真考虑转向用户到服务的方法:当所有调用都发生在特定用户的上下文中时,您可能会发现您的最佳途径是使用所有“我的”路由来填充您向用户提供的用户体验--请记住,您在Valence API调用中使用的用户凭据限制了您对功能和数据的访问,这与该用户通过其web UI与LMS进行正常交互时受到的限制完全相同。
https://stackoverflow.com/questions/18992973
复制相似问题