LRS Account Service
This service provides a simple interface to add and manage acitivity providers as well as arbitrary user accounts managed by the host system
createActivityProvider
Semantics: Calling this method will create a new activity provider with a unique, and randomly generated, key and password combination.
Required Arguments:
appid
-- Your application id
Example Call:
http://cloud.scorm.com/api?method=rustici.lrsaccount.createActivityProvider&appid=myappid
Example response:
<rsp stat="ok"> <activityProvider> <id> <![CDATA[f7-gZ_OUp1WcLClbufY]]> </id> <accountLabel> <![CDATA[Unnamed Account]]> </accountLabel> <accountKey> <![CDATA[f7-gZ_OUp1WcLClbufY]]> </accountKey> <accountSecret> <![CDATA[S63a-yahvGI8K8-Fe80]]> </accountSecret> <accountAuthType> <![CDATA[basic]]> </accountAuthType> <accountEnabled> true </accountEnabled> </activityProvider> </rsp>
listActivityProviders
Semantics: Calling this method will return a list of all current activity providers created by this service.
Required Arguments:
appid
-- Your application id
Example Call:
http://cloud.scorm.com/api?method=rustici.lrsaccount.listActivityProviders&appid=myappid
Example response:
<rsp stat="ok"> <activityProviderList> <activityProvider> <id><![CDATA[f7-gZ_OUp1WcLClbufY]]></id> <accountLabel><![CDATA[Unnamed Account]]></accountLabel> <accountKey><![CDATA[f7-gZ_OUp1WcLClbufY]]></accountKey> <accountSecret><![CDATA[S63a-yahvGI8K8-Fe80]]></accountSecret> <accountAuthType><![CDATA[basic]]></accountAuthType> <accountEnabled>true</accountEnabled> <allowedEndpoints><![CDATA[APPID]]></allowedEndpoints> <permissionsLevel><![CDATA[DEFAULT]]></permissionsLevel> </activityProvider> <activityProvider> <id><![CDATA[zlK9B-o3fYt_EQ6x1Sw]]></id> <accountLabel><![CDATA[Unnamed Account]]></accountLabel> <accountKey><![CDATA[zlK9B-o3fYt_EQ6x1Sw]]></accountKey> <accountSecret><![CDATA[HHUlpVoOJnk_qCeUu-s]]></accountSecret> <accountAuthType><![CDATA[basic]]></accountAuthType> <accountEnabled>true</accountEnabled> <allowedEndpoints/> <permissionsLevel><![CDATA[]]></permissionsLevel> </activityProvider> </activityProviderList> </rsp>
editActivityProvider
Semantics: A call to this method with the optional parameters passed to it will modify those values for the activity provider indicated by the accountKey.
Required Arguments:
appid
-- Your application idaccountkey
-- The activity provider to modify
Optional Arguments:
isactive
-- true or false indicating whether or not this account should be enabledauthtype
-- ‘basic’ or ‘oauth’label
-- me, a name, I call myself.allowedendpoints
-- ‘APPID’permissionslevel
-- ‘DEFAULT’, ‘READ_ONLY’ , ‘READ_ANY’ , ‘WRITE_ONLY’
Example call:
http://cloud.scorm.com/api?method=rustici.lrsaccount.editActivityProvider&appid=myappid&accountkey=f7-gZ\_OUp1WcLClbufY&label=forum\_activity\_provider
Example response:
<rsp stat="ok"> <activityProvider> <id> <![CDATA[f7-gZ_OUp1WcLClbufY]]> </id> <accountLabel> <![CDATA[forum_activity_provider]]> </accountLabel> <accountKey> <![CDATA[f7-gZ_OUp1WcLClbufY]]> </accountKey> <accountSecret> <![CDATA[S63a-yahvGI8K8-Fe80]]> </accountSecret> <accountAuthType> <![CDATA[basic]]> </accountAuthType> <accountEnabled> true </accountEnabled> <allowedEndpoints> <![CDATA[APPID]]> </allowedEndpoints> <permissionsLevel> <![CDATA[READ_ONLY]]> </permissionsLevel> </activityProvider> </rsp>
deleteActivityProvider
Semantics: Calling this method deletes the activity provider indicated by the accountKey passed in. This cannot be undone. If you wish to temporarily disable an Activity provider use the edit API instead.
Required Arguments:
appid
-- Your application idaccountkey
-- The activity provider to modify
Example call:
http://cloud.scorm.com/api?method=rustici.lrsaccount.deleteActivityProvider&appid=myappid&accountkey=f7-gZ\_OUp1WcLClbufY
Example response:
<success />
setAppLrsAuthCallbackUrl
Semantics: Calling this method sets a callBack URL that will be used to verify basic auth credentials. This URL’s scheme must be HTTPS.
Required Arguments:
appid
-- Your application idlrsAuthCallbackUrl
-- URL used to verify basic auth credentials with remote training delivery service. The URL scheme must be HTTPS.
Example response:
<success />
Callback Request Info: This is what Cloud sends to your authentication endpoint.
- The request will include a
CloudLrsAuthorization
header that contains the base64-encoded concatenation of the username, a colon, and the password (e.g.:jim.raynor:hunter2
), the same as basic auth. - Note: Request connection failures (e.g., request timeouts, failed DNS lookups, etc.) will be cached for 60 seconds. During these 60 seconds, further authenticated xAPI requests to Cloud for that (appId, callbackUrl, username) combination will automatically fail as unverified.
- The request will include a
Example Callback Response: This is what your authentication endpoint should send back.
<resp> <auth>verified</auth> <permissions>default</permissions> </resp>
auth
-- Is the user verified: (verified | unverified)permissions
-- What can this user see? (default | root | read_only)- Default allows a user to read and write statements only about themselves.
- Root allows a user to read and write all statements in that app ID.
- Read Only allows a user to read all statements in that app ID, but not write any statements.
- Note: verified responses for the (appId, callbackUrl, username, password) combination are cached for 30 minutes. During these 30 minutes, future xAPI requests will use the cached verified response.
- Note: unverified responses for the (appId, callbackUrl, username, password) combination are cached for 60 seconds. During these 60 seconds, future xAPI requests will use the cached unverified response.
getAppLrsAuthCallbackUrl
Semantics: Calling this method returns a callback URL previously set by setAppLrsAuthCallbackUrl
Required Arguments:
appid
-- Your application id
Example response:
<rsp stat="ok"> <lrsAuthCallbackUrl>https://example.com/authcallbackURL</lrsAuthCallbackUrl> </rsp>
resetAppLrsAuthCallbackUrl
Semantics: Calling this method removes a callback URL previously set by setAppLrsAuthCallbackUrl
Required Arguments:
appid
-- Your application id
Example response:
<success />