Oppimisalustan liittäminen EduStoreen

Yleiset tiedot oppilaasta

Oppimisalustan tulisi välittää muutama perustieto käyttäjästä.

Parametri Kuvaus
firstnameEtunimi (PAKOLLINEN)
lastnameSukunimi (PAKOLLINEN)
emailSähköpostiosoite
user_idKäyttäjätunniste (PAKOLLINEN)
context_idKontekstin tunniste (PAKOLLINEN)
context_titleKontekstin nimi (PAKOLLINEN)
roleRooli (student, teacher, admin) (PAKOLLINEN)
city_idKunnan y-tunnus (PAKOLLINEN)
schoolKoulun nimi (PAKOLLINEN)
school_idKoulukoodi (PAKOLLINEN). Useampi koulukoodi voidaan välittää eroteltuna puolipisteellä.
cityKunta tekstimuodossa
add_resource_callback_urlOppimisalustan oppimateriaalin lisäys-URL.

Oppimateriaalin valitseminen Oppimateriaalin valitseminen oppisalustalle.

Oppimisalusta integraatiossa EduStoreen voidaan käyttää muutamaa eri tapaa:

Tapa Huomiot
1. Hakuikkunan integrointi oppimisalustalle. Yksinkertainen alkuvaiheessa. Käyttäjä ohjataan joku popup-ikkunan tai uuden ikkunan välityksellä oppimateriaalin valitsemiseen.
2. Javascript-moduulin integroiminen oppimisalustalle. Drag & Drop. Oppimisalustaan integroidaan javascript-hakupalikka. Nopea käyttöönotto.
3. Haku-rajapinnan käyttö - oppimateriaalien haku suoritetaan rajapinnan kautta. Oppimisalustan tulee toteuttaa haku ja oppimateriaalin lisäys. Myös oppilaitokselle lisättävät materiaalit tulee toteuttaa oppimisalustassa.

Kun käyttäjä on valinnut materiaalin/materiaalit, palauttaa Dikaios käyttäjän oppimisalusta palveluun lähettämällä valinnat POST-muodossa json-datana add_resource_callback_url -parametrissa ilmoitettuun osoitteeseen. Oppimisalustaa käsittelee ja tallentaa materiaalien tiedot, kuten EduStore oppimateriaalitunniste, oppimateriaalin nimi ja kuvaus.

Rajapintaan tehtävät pyynnöt

LMS-integraation tulee pystyä suorittamaan kaksi eri pyyntöä. Selaus-tunnuksen haku ja materiaalin avaus. Vain käyttäjät roolilla teacher voivat hakea selaus-tunnuksen.

Selaus-tunnuksen haku

Selaus-tunnuksen haku kirjaa käyttäjän sisään. Onnistuneen pyynnön paluuviestinä saadaan URL-osoite, jolla käyttäjä voidaan ohjata Edustoreen.

Esimerkki pyynnöstä

Tässä esimerkissä:
client_id = testi-organisaatio-abc
secret_key = ff3b3acc64a3e4213317e95b03486f6dc67ea7bf

Esimerkki tietosisällöstä, joka pakataan json-muotoon:

user_id: 1
firstname: Etunimi
lastname: Sukunimi
email: etunimi.sukunimi@edustore.fi
context_id: K1
context_title: Kurssi 1
role: teacher
city_id: 000000-0
school: Koulun nimi
school_id: 12345
city: Kuopio
add_resource_callback_url: http://test.fi/mod/dikaios/add.php
cancel_callback_url: http://test.fi/mod/dikaios/cancel.php

hmac lasketaan käyttäen kaikkia pyynnössä kulkevia parametreja.

data = json.dumps(params)
message = bytes(data).encode('utf-8')
hmac = hmac.new(secret_key, message, digestmod=hashlib.sha256).hexdigest()
hmac = 8959e96e3816c089d2c00152d5bf53aa67623393af22393c38fb763d9154de9c

Enää tarvitsee suorittaa vain POST-pyyntö, jonka head-osion lisätään Content-type ja Authentication-parametrit.

headers['Content-type'] = 'application/json'
headers['Authentication'] = 'ORGANIZATION ' + client_key + ':' + hmac

Pyynnön paluuviestinä saadaan URL-osoite, jolla käyttäjä voidaan ohjata suoraan Edustoreen.

{
  success: true,
  url: "https://edustore.test/browser/token?token=3c41e9a23cda33d24e47925a3ff1e4b019defb22ffcbe53db95af947d78c392e2ca9187367128c22bfacfc0cd9bce0ef9253c8845a71298e5649bf58fcf1e099"
}

Materiaalin avaus

Materiaalin avaus-pyyntö välittää Edustoren rajapintaan tiedot käyttäjästä ja tiedon avattavasta materiaalista.

Esimerkki pyynnöstä

Pyynnön client_id ja secret_key ovat samat kuin aikaisemmassa esimerkissä.

Esimerkki tietosisällöstä, joka pakataan json-muotoon:

user_id: 1
firstname: Etunimi
lastname: Sukunimi
email: etunimi.sukunimi@edustore.fi
context_id: K1
context_title: Kurssi 1
role: student
city_id: 000000-0
school: Koulun nimi
school_id: 12345
city: Kuopio
uid: ff496334-15ae-ab45-d43f-b4c568613968

hmac lasketaan samalla tavalla kuin aikaisemmassa esimerkissä. Myös pyyntöön liitettävät header-osion parametrit ovat samat.

Pyynnön paluuviestinä saadaan URL-osoite, jolla käyttäjä ohjataan lisenssin tarkituksen kautta tuotetoimittajan rajapintaan.

{
  success: true,
  url: "https://edustore.test/viewer/token.php?token=4de1f8040d38e03bed1436e24aa403c3f3c96636d9e4f4022812b2bc6332b77bbd4429b413e673a8692c646a29710b4ea7e583f60c0f5bf39dc22846362afcfa"
}

Oppimistuloksia voidaan kyselle EduStoren rajapinnan kautta. Rajapintakysely tehdään joko käyttäjää, käyttäjiä tai tiettyä kontekstia vasten.