0

我们想使用 Desire2Learn 远程插件通过课程构建器配置自定义 LTI 外部学习工具链接,但我不清楚是否应该使用远程插件 API 以及如何使用远程插件 API 来实现此目的。

这就是我们想要做的:

当用户使用 Course Builder 将我们的远程插件的实例添加到模块时,我们的插件将显示一个 UI 来配置我们的 LTI 工具的特定实例。当教师通过我们的插件 UI 完成对实例的配置后,我们希望在模块中放置插件的位置创建一个外部学习工具链接。然后当学生点击模块链接时,他们将看到外部学习工具而不是插件 UI。

当我们的插件 UI 以类似于 Book Widget 示例 ( http://devs.valence.desire2learn.com/2013/02/15/ ) 的方式执行时,我们可能能够使用 Valence API 创建链接remote-plugins-the-bookwidget-sample-2)将书籍添加到课程中。但是,我不确定我们如何确切知道在哪里创建链接,或者是否可以使用 Valence API 创建 LTI 外部工具链接。

此外,当您在课程构建器中使用插件时,您可以将插件拖到模块中的特定位置,例如在两个现有项目之间。执行插件时,我在 LTI 启动参数中看不到任何内容,告诉我们除此参数之外的位置:

custom_links_import_service_url:_https://mydomain.desire2learndemo.com/d2l/lms/remoteplugins/coursebuilder/ImportService.d2l?parentNode=541&pluginId=85834c62-3fc6-455d-b89a-e99bbf70f1ce

该 URL 具有模块的节点 (parentNode=541),但没有告诉我们插件放置在模块中的哪个位置。

启动还包括一个返回 URL 参数,但返回该参数似乎只是刷新页面,甚至没有将原始插件启动 url 添加到模块中。我看到文本“插入操作已取消”。在弹出窗口的顶部,课程构建器会刷新。

launch_presentation_return_url:_https://mydomain.desire2learndemo.com/d2l/lms/remoteplugins/courseBuilder/return.d2l?ou=6671&parentNode=541&pluginId=85834c62-3fc6-455d-b89a-e99bbf70f1ce

希望对我们想做的事情的描述是有意义的,并感谢您对我们如何做到这一点的任何见解。

4

1 回答 1

1

这个问题有几个方面。

通过 API 创建 LTI 链接。我们目前不支持通过学习框架 API 创建 LTI 链接,但这是我们即将于 2013 年春季发布的 10.2 版本的路线图。即将推出的 API 将允许调用者注册新的 LTI 链接对象,并围绕快速链接设计已注册的 LTI 链接(其中包含可用于启动 LTI 链接的 URL)。

在课程内容模块中定位内容主题。目前我们的 API 仅支持在模块中创建、修改或删除主题;我们不提供 API 来在模块的包含主题列表中精确定位主题。放置在模块中的新项目始终位于模块包含的事物列表的底部。您传递的parentNode值确实是父内容模块的 ID,当您使用 API 添加主题时,您会将其添加到该模块中。

页面返回。D2L LE 工具消费者的当前行为是,当工具提供者重定向到 时launch_presentation_return_url,LMS 会刷新页面(因此,您在重定向到返回 URL 之前插入的任何链接都会出现在刷新的页面中)。如果您需要将用户的注意力引导到有关 LTI 启动状态的任何内容,那么您的 UX 需要在重定向回返回 URL 之前处理给用户的消息。

在截至 2013 年 3 月的 LMS 部署版本上,页面返回 LTI 工具提供者需要将?lt_msg=查询字符串参数与返回 URL 一起发送,尽管此参数可以具有空值。在 2013 年 3 月提供的服务包之后,工具提供商不再需要将该查询参数发送回返回 URL:返回 URL 的任何请求都需要刷新页面,无论它是否包含查询参数。

于 2013-04-05T15:48:02.997 回答