我们的集成之一使用 D2LWS UserManagementService 将用户名转换为 userId。当学生单击 LTI 请求时,我们会收到他们的用户名、名字和姓氏,但我们需要数字 userId 用于其他一些 Valence API 调用。
我们想在 D2LWS 退役之前减少对它们的依赖,所以我们想知道是否有等效的 Valence API 调用可以用来进行这种转换?
我们的集成之一使用 D2LWS UserManagementService 将用户名转换为 userId。当学生单击 LTI 请求时,我们会收到他们的用户名、名字和姓氏,但我们需要数字 userId 用于其他一些 Valence API 调用。
我们想在 D2LWS 退役之前减少对它们的依赖,所以我们想知道是否有等效的 Valence API 调用可以用来进行这种转换?
客户端应用程序可以通过多种方式填写其对 LMS 用户身份属性的理解。还值得注意的是,D2LWS 平台本质上针对服务到服务级别的操作信任进行了优化,而较新的 Valence 平台针对用户到服务的操作信任进行了优化——这意味着所有的 Valence 调用都必须发生在一些真实的、经过身份验证的 LMS 用户帐户的上下文(在某种意义上,为了进行调用,客户端应用程序必须首先请求获取经过身份验证的用户的用户 ID/密钥对)。
如果 LMS 始终会通过 LTI 启动联系或提示您的客户端服务,那么您将有足够的容量从该启动开始(请参阅围绕我们的远程插件服务将 Valence 调用与 LTI 结合的详细主题)。应该有一个真正的 LMS 用户会以某种方式从登录的 LMS 会话中启动该启动。因此,在 LTI 启动后,您的服务可以转身并调用 LMS 来为当前经过身份验证的用户请求用户令牌,并且该用户几乎可以肯定是 LTI 启动用户。
通常,对于从 LTI 启动获得联系然后想要使用 Valence 的服务,我们建议您在启动后立即建立用户上下文并拨打 whoami 电话:这可以用于多种目的 - 它可以确定您有您可以使用一组可靠的用户令牌代表启动用户进行 Valence 调用,并且您可以使用在WhoAmIUser 数据结构中检索到的信息来帮助填写您的用户身份的上下文。
出于您的特定目的,WhoAmIUser 数据结构包含启动用户的名字、姓氏、唯一名称(用户名)和 LMS 配置文件标识符,以及Identifier
您可以在上下文中使用的 LMS 用户标识符 ( ) 属性如果您需要,其他 Valence 电话。但是,您还应该强烈考虑转向用户到服务的方法:当所有调用都发生在特定用户的上下文中时,您可能会发现您的最佳路线是使用所有“我的”路线来填写您呈现给用户的用户体验——请记住,您在 Valence API 调用中使用的用户凭据会限制您对功能和数据的访问,就像该用户在与 LMS 的正常交互过程中受到限制一样通过其网络用户界面。