如何从Desire2Learn导出成绩?

时间:2012-04-04 19:36:45

标签: java desire2learn

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

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

如何进行appid和app键的一次性配置?

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

实际获取课程列表并导出成绩需要哪些REST调用?

1 个答案:

答案 0 :(得分:0)

关于公用事业帐户:

我会考虑尝试使用讲师上下文,这样您就不必强制执行角色了。但如果你选择了公用事业账户:

关于AppID和AppKey的一次性配置:

  1. keytool walkthrough
  2. 之后从keytool请求密钥
  3. 该工具将通过Desire2Learn以及您所在机构的已批准联系人进行跟进,以确保该密钥应启用。
  4. 启用后,您可以将这些密钥直接编译到java代码或资源文件(或db)中。它们在几个地方的Java库中使用,允许您在Desire2Learn Manage Extensibility Tool中打开或关闭各个应用程序。
  5. 关于实用程序帐户userid和userkey的一次配置:

    最简单的方法是将Getting Started Sample转换为安装程序:

    1. 示例中使用的auth库可用于对您自己的实例进行身份验证(而不是提示输入主机名)。这将产生一个认证网址,如“https://my.host.name/d2l/auth/api/token?x_a = ......”,应将其设置为“选择要运行的公用事业帐户”的步骤这个应用程序“。
    2. 调整index.jsp中的java示例,并将保存userid和userkey的行更改为会话:

        

      session.setAttribute(“userID”,userContext.getUserId());

           

      session.setAttribute(“userKey”,userContext.getUserKey());

      而是将其保存到数据库中。

    3. 配置应用程序时,运行此应用程序并使用您要使用的实用程序帐户登录D2L。登录完成后,将运行index.jsp代码并保存密钥。
    4. 这些密钥在java库中使用,并向LMS证明调用的用户上下文。
    5. 关于获取课程列表和课程成绩:

      1. 对于所有调用,我将使用名为ID2LUserContext librarycreateAuthenticatedUri操作传入文档中提到的路径。
      2. 获取具有org unit by user call
      3. 的讲师的组织单元(包括课程)

        此次通话的示例请求:

        GET
        https://valence.desire2learn.com/d2l/api/lp/1.0/enrollments/users/3667/orgUnits/?x_b=JgqB2bumFwQkWft-gUP8Qr&x_a=L2Hd9WvDTcyiyu5n2AEgpg&x_d=XeTMX5fliLPTJdtKqeE_a0esDmTriSC9Aq9sMtpoO00&x_c=2AhFhrwhv1RsIdshAMba0upiux7Bhz-znS-VqjXhQh8&x_t=1333565539
        HTTP/1.1 Accept-Encoding: gzip,deflate User-Agent: Jakarta
        Commons-HttpClient/3.1 Host: valence.desire2learn.com
        

        (值x_a,x_b,x_c,x_d和x_t用于身份验证,如果使用客户端库则会自动添加)

        3.此通话最终将包含OrgUnitInfo structures

        以下是原始回复:

        HTTP/1.1 200 OK
        Cache-Control: no-cache, no-store
        Pragma: no-cache
        Content-Length: 17300
        Content-Type: application/json; charset=UTF-8
        Expires: -1
        Server: Microsoft-IIS/6.0
        X-Powered-By: ASP.NET
        X-AspNet-Version: 2.0.50727
        Date: Wed, 04 Apr 2012 18:52:08 GMT
        
        {"PagingInfo":{"Bookmark":"6789","HasMoreItems":true},"Items":[
        
        <SNIP/>
        
        {
                 "OrgUnit":          {
                    "Id": 6789,
                    "Type":             {
                       "Id": 3,
                       "Code": "Course Offering",
                       "Name": "Course Offering"
                    },
                    "Name": "In",
                    "Code": "dSCL_101_ONGOING_01"
                 },
                 "Role":          {
                    "Id": 71,
                    "Code": null,
                    "Name": "Instructor Role"
                 }
              }    
        
        <SNIP/>
        

        4.来自OrgUnitInfo结构的ID可用于通过the grades for a course action

        检索成绩

        有关如何将文档资源转换为工作电话的背景信息,您需要查看documentation conventions