我有一个使用 LTI1p0 的 LTI 工具使用者 (LMS),它将向当前未使用 LTI 的服务发送请求。因此,我正在编写一个包装器的 NodeJS 实现,它将
- 从 LTI 工具消费者接收,
- 将其映射到匹配服务的 API,
- 将其发送到服务,
- 然后将来自服务的响应解析为 LTI Tool Provider 格式,
- 最后将其发送回工具消费者。
该服务有一个名为的必填字段groups
,它需要一个组对象数组,如下所示:
group: [ {
id: <string>, // id of the group
name: <string>, // name of the group
role: <string> // role of the user
}]
LTI1p0 实施指南中并不完全存在此参数。所以我想知道如何groups
通过 LTI 最好地发送数组类型(在我的情况下)信息。
在查看文档时,我遇到了一些可以使用的潜在参数:
1.上下文参数
该指南提到“上下文类型将是“组””,并且有用于context_id
、context_type
、的参数context_title
。问题是这只是每个请求/用户一个组的一个选项。
2.自定义参数
我可以创建一个自定义参数并调用它custom_groups
,这看起来很简单,但我不确定该值应该如何查找数组?就像一个字符串化的 json 对象?
custom_groups = "{"id":123,"name":"Group Name","role":"Instructor"}, {"id":124,"name":"Group Name 2","role":"Creator"}"
对于roles
参数,可以发送以逗号分隔的字符串列表(即roles= Instructor, Creator,..
),但在我的情况下这还不够。
我还是 LTI 的新手,所以如果这很明显,我深表歉意。
注意:LTI 消费者 (LMS) 和服务都是外部的,即我无法更改它们,只能提供包装器。我可以与工具消费者就可能的自定义参数进行沟通,但再次不确定要请求哪种格式。此外,该服务可能会在年底前实施 LTI,因此理想情况下可以删除包装器,并且工具使用者不必进行太多更改。
非常感谢任何帮助!