Parameters

Parameters passed from it’s learning to the application:

Parameter name Sample value Explanation
ApiSessionId fjaklsajj23rfaaallcvj Session id that must be used for communicating with it's learning rest api (used as part of Authorization header)
LearningObjectId 14345521 Numeric unique id of the learning object
LearningObjectInstanceId 15677744 numeric learning object instance id, identifies a unique use of the learning object (e.g. in a course)
Version LatestOrDraft the version of the learning object. Can be numeric or the text LatestOrDraft. The text LatestOrDraft is sent if user is working on a version that not yet has been published. (Currently not in use - will always be LatestOrDraft)
UserId 556660 Numeric unique id for current user
WindowsTimeZoneId GMT Standard Time Id of timezone that can be used in .net framework: TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(windowsTimeZoneId)
OlsonTimeZoneId Europe/London Id of timezone on Olson format
FirstName Bent Audun First name of current user
LastName Hesvik Last name of current user
Locale en-GB Culture name that specifies e.g. date time format. RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>") like used by Microsoft.NET Framework, see http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx
Language en-GB Culture name for current user's language. RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>") like used by Microsoft.NET Framework, see http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx
Use12hTimeFormat False True/False. True if user expects 12 hour format for times (7:00 PM) or False when user expects 24 hour time format (19:00).
Accessibility False True/False, if user has checked the accessibility setting in it's learning
Permissions Read, Participate,
Evaluate, Modify, ModifyInstance
Permissions user has to this particular learning object instance. Comma separated string.
Read - user is allowed to view the learning object
Participate (only avaliable for Learning Activity) - user is allowed to participate on learning object (e.g. submit answer)
Evaluate (only avaliable for Learning Activity) - user is allowed to evaluate (e.g. assess answers, view reports etc)
Modify - user is allowed to modify the learning object
ModifyInstance - Only applicable for applications that support sharing. User should be allowed to edit instance content stored in your application and also e.g. update deadline stored in it's learning (use rest api method). If your application supports sharing - the user will not have Modify permission when accessing an instance that is connected to a library "master" instance, even though user is author. Shared content must be edited from the library – and then Modify permission will be sent.

If "Read, Participate" is sent from it's learning, it means that the user can view learning object and e.g. submit answer, but should not be allowed to edit learning object or e.g. assess answers.
LicenseIds 101,104,105 A comma separated list of integers representing the it's learning license IDs valid for the current user. This parameter is only sent if your application is licensed.
ExternalLicenseIds yourownlicenseid1,
yourownlicenseid2
A comma separated list of license IDs from your own licensing system which you have entered into the license agreement in it's learning. Each ID corresponds to an it's learning license ID in the LicenseIds parameter. (ExternalLicenseIds[i] corresponds to LicenseIds[i]) There are always an equal amount of fields in LicenseIds and ExternalLicenseIds, although the fields in ExternalLicenseIds can be empty. If your license ID string contains commas (',') or backslashes ('\') these will be escaped, i.e. they will be preceded by a backslash. E.g. "temp\license2,3" will become "temp\\license2\,3". This parameter is only sent if your application is licensed.
SchoolId 3|HullPrimary,2|,5|,4|,14|,28|,25|,22|,13|,26| A comma separated string of IDs of the schools the user belongs to. Each school ID may actually consist of two IDs. One numeric it's learning school ID X and a legal ID Y. These are separated by a pipe character '|', as X|Y. The school might not have a legal ID. In that case its place is empty as you see in the example where only the first school has a legal ID ("HullPrimary").
CustomerId 353 The customer the user request is coming from. Integer.
Role Learner The role that the user has in it's learning. Can be one of Staff, Learner, Guest. This parameter should not be used as a permission system, but rather to for example prevent Learner's from seeing parts of the application that you'd only like Staff users to see.
TimeStamp 2009-06-20T21:30:22 Time stamp in UTC
Signature A signature created from all of the above parameters and shared secret.

LearningObjectId and LearningObjectInstanceId - what's the difference?

LearningObjectId = ID of the contentLearningObjectInstanceId = unique ID that identifies the content used in a unique context (e.g. course)Every time a user creates a new learning object in a course, using the add page, it will be assigned a new LearningObjectId and a new LearningObjectInstanceId. But the same LearningObjectId will be used if that user decides to share this specific learning object in a different course.

Important to remember about these parameters:

  • LearningObjectId, LearningObjectInstanceId and Version could be passed between pages in your application.
  • You should always validate parameters against signature, to check that they have not been tampered with.
  • User can have more than one learning object instance open in the same browser, this is important to consider with regards to session. You could consider creating a session like this: Session[LearningObjectId + ";" + LearningObjectInstanceId + ";ApiSessionId"] = ApiSessionId Session[LearningObjectId + ";" + LearningObjectInstanceId + ";Permissions"] = Permissions Session["UserId"] = UserId Session["Language"] = Language Session["TimeZoneId"] = WindowsTimeZoneId (or OlsonTimeZoneId) Session["Use12hTimeFormat"] = Use12hTimeFormat Session["DateTimeCulture"] = DateTimeCulture Session["Accessibility"] = Accessibility Session["FirstName"] = FirstName Session["LastName"] = LastName