问题标签 [desire2learn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
795 浏览

desire2learn - Desire 2 学习 Valence API 身份验证和 cookie

我正在尝试以无头方式使用 valence api。

旁注:我必须修改超链接,使它们不是链接,否则我无法发布问题。

场景一:

使用提供的 Java 示例时,如果不存在 cookie,则会命中以下 URL:

https://elearning.masked.edu/d2l/auth/api/token?x_a=JjGDh8MaskedDgOGlPPagA&x_b=gnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY&x_target=http%3A%2F%2Flocalhost%3A8080%2FD2LValenceExample%2Findex.jsp

这给了我一个 302 响应并将浏览器发送到

https://elearning.masked.edu/d2l/login?target=%2fd2l%2fauth%2fapi%2ftoken%3fx_a%3dJjGDh8MaskedDgOGlPPagA%26x_b%3dgnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY%26x_target%3dhttp%253a%252f%252flocalhost%253a8080%252fD2LValenceExample%252findex .jsp&sessionExpired=1

这给了我另一个 302 响应并将浏览器发送到

https://elearning.masked.edu/?target=%2fd2l%2fauth%2fapi%2ftoken%3fx_a%3dJjGDh8MaskedDgOGlPPagA%26x_b%3dgnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY%26x_target%3dhttp%253a%252f%252flocalhost%253a8080%252fD2LValenceExample%252findex.jsp

这是 D2L 登录屏幕。因此,我登录并将带有我的凭据的帖子发送到:

https://elearning.masked.edu/d2l/lp/auth/login/login.d2l

最后,我的浏览器被发送到 D2L 主页:

https://elearning.masked.edu/d2l/lp/homepage/home.d2l?ou=1234123

这不遵循http://docs.valence.desire2learn.com/basic/auth.html中列出的流程。我期待重定向到 appURL。

但是,当我们第二次这样做时,就达到了预期的结果:

场景二:

https://elearning.masked.edu/d2l/auth/api/token?x_a=JjGDh8MaskedDgOGlPPagA&x_b=gnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY&x_target=http%3A%2F%2Flocalhost%3A8080%2FD2LValenceExample%2Findex.jsp

http://localhost:8080/D2LValenceExample/index.jsp?x_a=Da6kyMaskedDMZy8l_1&x_b=SV6_ONhvMaskedoBc_hHZ&x_c=oD7JMT9CGgyLljIF_1MaskedCI5YZHJPcIgKD4

不同的是饼干。当我删除 elearning.masked.edu 的 cookie 时,场景 1 中的结果总是会发生。所以问题变成了当我们在没有 cookie 的情况下启动 web 服务身份验证调用的正确方法是什么?

0 投票
1 回答
1442 浏览

desire2learn - Desire2Learn REST API 与 SOAP 的身份验证方法

我希望有人能告诉我身份验证与新的 D2L REST API 一起工作的方式。从我阅读和使用“GetStarted”示例代码来看,调用似乎是基于“用户身份级别”和“用户接受度”的。

对我们来说,这有点问题。

我们有几个自定义工具,学生可以在其中完成一项活动(D2L 之外)并获得评分。设置这些工具,以便以这种方式提供的成绩与我们的 D2L 实例中给定课程的成绩簿列相关联。目前使用 SOAP,我们只使用特权 Web 服务帐户,这样当学生完成任务时,成绩会自动导出到给定课程中相关的成绩册列。

我对 REST 文档的理解是,不再可能使用特权 Web 服务帐户,因为它每次都必须登录并接受该工具的使用。完成任务的学生不会拥有这些信息(我们也不需要),并且学生的访问级别不允许他升级成绩簿列,因此我们也无法使用他的“用户身份” .

我能想到的唯一选择是将所有成绩存储在其他地方。然后,在适当的时候,课程的讲师会使用他们的“用户身份级别”和“用户接受度”登录并批量更新成绩册?

这个对吗?

对我们来说,这非常麻烦,因为我们相当依赖自己工具的身份验证方法和特权 Web 服务帐户。

0 投票
1 回答
597 浏览

java - 如何从 Desire2Learn 导出成绩?

学校的应用程序开发人员(使用 Java)如何从 D2L 实例中导出成绩?

如果我正在构建一个需要使用实用程序帐户的 D2L Valence 应用程序(如描述的方法:https ://stackoverflow.com/a/9950523/680651 )来导出一堆成绩:

如何一次性配置appid和app key?

如何一次性配置用户 ID 和用户密钥?

我需要哪些 REST 调用才能实际获取班级列表并导出成绩?

0 投票
1 回答
257 浏览

scorm - 在 Desire2Learn 中通过 SCORM 持久化数据

我正在尝试在 Desire2Learn SCO 中使用可共享状态持久性。但是,它似乎不受支持。当我尝试将“ssp.*”之一与 SetValue(例如:ssp.allocate 或 ssp.data)一起使用时,我收到错误 401(未定义的数据模型元素)。

有人知道如何在 Desire2Learn 中的 SCO 之间共享自定义数据吗?

0 投票
1 回答
255 浏览

desire2learn - 使用 Desire2Learn 的 REST API 时的时间戳范围

调用 Desire2Learn 的 Valence REST API 时,调用者的时间戳值与后端服务时间之间的差异允许范围是多少?

0 投票
1 回答
71 浏览

authentication - Desire2Learn 的 REST API 身份验证中使用的令牌 ID 的大小?

REST API 身份验证方案的文档将用于身份验证的令牌密钥描述为 22 个字符的长度。但是,令牌 ID 有多长——它们也是 22 个字符吗?

0 投票
1 回答
69 浏览

desire2learn - 使用 Desire2Learn 的 REST API 在我的个人储物柜中创建一个文件夹

如何使用 Desire2Learn 的 REST API 在我的个人储物柜中创建一个新文件夹(称为“test”)?我已经尝试过这个请求,但它不起作用:

服务器向我发回 200 状态,但也告诉我“发生了意外错误”。我已经用其他路由测试了所有 auth 参数,它们似乎有效。我究竟做错了什么?

0 投票
1 回答
145 浏览

desire2learn - 使用 Desire2Learn 的 REST API 上传到我的个人储物柜中的文件夹

如何使用 Desire2Learn 的 REST API 将文件上传到我的储物柜?服务器返回状态码 200 但“发生意外错误”

编辑(另一个请求,相同的结果)

0 投票
1 回答
94 浏览

desire2learn - 将书签参数与 /users/ 一起使用

我一直在查看位于http://docs.valence.desire2learn.com/res/user.html的文档

我正在尝试对从 /users/ 获得的响应数量进行分页。

当我使用“/users/”发送一个 get 时,我收到了 D2L 中所有用户的预期 Json 块。

当我尝试“/users?bookmark=3004”时,我收到 404 错误或找不到路径错误(我在这行代码上尝试了很多变体)

任何帮助将不胜感激。

0 投票
1 回答
212 浏览

desire2learn - 用于在 Desire2Learn 中更改用户角色的 API

用户 api 文档中提到要在组织级别更改用户的角色,我们需要使用模式“PUT /d2l/api/lp/(D2LVERSION: version)/users/(D2LID: userId)”这需要 UpdateUserData JSON 块作为输入,但 UpdateUserData JSON 块中没有角色 ID。那么,我们将如何传递用户的新角色?