【问题标题】:Creating an API based non-interactive process for creating users创建基于 API 的非交互过程来创建用户
【发布时间】:2014-03-20 16:11:01
【问题描述】:

是否有人成功创建了非交互式工作流程。基本上,我想要完成的就是这个。在我的 CRM 中,我正在尝试对我的 LMS 进行 Valance API 标注,当在 CRM 中创建用户时,它将创建一个 LMS 用户。 这需要在没有任何“人机交互”的情况下发生。 我正在使用 Valance Java SDK (https://github.com/Desire2Learn-Valence/valence-sdk-java) 作为我的代码的框架,在其核心,我正在执行这个流程:

  • D2LAppContext DAC = 新 D2LAppContext(aid,key);
  • URL targetURL = new URL(protocol+endpt + actiontype);
  • URL authEP = DAC.createWebUrlForAuthentication(endpt, hport, 目标网址);
  • httprequest (Get) authEP(返回 200 状态码 - OK)
  • ID2LUserContext DUC = DAC.createUserContext(authEP, endpt, hport, 真的); (我也尝试过传递用户标识和用户密钥 从 API 测试应用程序生成,基于登录为 交互式用户。
  • URL userURL = DUC.createAuthenticatedUri(actiontype, 'GET');
  • httprequest (Get) userURL(返回 403 状态码 - 禁止)

有没有人对如何做到这一点提出建议?我的一个问题是 API 期望哪个用户 ID 和用户密钥?我用来通过 UI 登录 LMS 的那个?或者从授权调用返回的东西? 谢谢! 吉姆

【问题讨论】:

  • 我确实找到了这个帖子:stackoverflow.com/questions/10503375/…,我认为它会起作用。我在此注意到的是,当我登录时,我得到了 sessionvalues,当我进行身份验证时,它似乎可以工作(获得状态 200,好的),但真正发生的是,我的会话已过期(重定向到登录)

标签: desire2learn


【解决方案1】:

这个问题和我最近问的一个问题类似:

Consuming the Valence API as an application

这就是我们在Learning Objects 解决这个问题的方法。

基本上,您需要做的是创建一个服务帐户(您的应用程序将伪装成的用户),并具有在您的 D2L 服务器上创建用户所需的正确权限。然后,您必须使用D2L's github repo 或其API test tool 上可用的示例应用程序之一为该用户申请一个userIduserKey(有点hack-ish,但这是唯一的方法)。

一旦您拥有userIduserKey,只需使用它们来创建对您的 D2L 服务器的签名请求。

【讨论】:

  • 我也尝试过这样做,但仍然出现错误。我使用了 API 测试工具(您提到的),并使用我的凭据进行了身份验证,然后将生成的 UID 和 Ukey 应用到我的代码中,但没有任何乐趣。顺便说一下,示例应用程序确实可以工作,所以我知道我的凭据能够创建用户。感谢您的回复。您能分享一下您是如何开发代码的吗?您是使用其中一个 SDK,还是自己开发一切?你是用什么语言开发的?
  • 我正在使用 Java 进行开发,使用位于 here 的 Java valence sdk。我进行了大量更改,以便从概念上更轻松地向服务器发出请求。我还弃用了一些我认为不必要的方法。我建议更新到 github repo 的当前版本,并使用提供的非弃用方法。如果您仍然需要帮助,也许您可​​以将您的一些代码通过电子邮件发送给我,我们可以一起解决。
  • 谢谢,我也在使用 Java SDK,大约 30 天前下载的。我会检查以确保没有我需要合并的更改。我实际上正在使用一个利用类似于 Java 的专有代码库的系统,因此我必须进行一些更改才能使我的代码能够编译,并且必须用等效的替换系统中不存在的一些元素。我非常感谢您提供的帮助,如果更新没有帮助,我会联系您。附带说明一下,我也有一个与 D2L 团队合作的案例。
  • 我正在 Valence 用户论坛上的题为“非交互式 Web 服务工作流程”(groups.google.com/forum/#!topic/valenceusers/3gh1q8nGZPQ) 的主题中跟进这个问题,因为在我看来可能还需要更多讨论不仅仅是问题:答案。
猜你喜欢
  • 2017-11-29
  • 2014-05-14
  • 1970-01-01
  • 2021-06-24
  • 2015-12-17
  • 2016-07-12
  • 2021-06-05
  • 1970-01-01
  • 2021-02-17
相关资源
最近更新 更多