创建基于API的非交互式流程以创建用户

时间:2014-03-20 16:11:01

标签: desire2learn

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

  • D2LAppContext DAC = new D2LAppContext(aid,key);
  • 网址targetURL =新网址(协议+ endpt + actiontype);
  • URL authEP = DAC.createWebUrlForAuthentication(endpt,hport, TargetURL中);
  • httprequest(Get)authEP(返回200状态代码 - 确定)
  • ID2LUserContext DUC = DAC.createUserContext(authEP,endpt,hport, 真正); (我也尝试过传递userid和userkey 从API测试应用程序生成,基于作为登录 互动用户。
  • 网址userURL = DUC.createAuthenticatedUri(actiontype,'GET');
  • httprequest(Get)userURL(返回403状态代码 - 禁止)

有没有人对如何做到这一点有任何建议?我有一个问题是API期望的userid和userkey是什么?我用来通过UI登录LMS的那个?或者从授权电话返回的内容? 谢谢! 吉姆

1 个答案:

答案 0 :(得分:0)

这个问题类似于我最近提出的一个问题:

Consuming the Valence API as an application

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

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

获得userIduserKey之后,只需使用它们来创建对D2L服务器的签名请求。