Oppimisalustan tulisi välittää muutama perustieto käyttäjästä.
Parametri | Kuvaus |
---|---|
firstname | Etunimi (PAKOLLINEN) |
lastname | Sukunimi (PAKOLLINEN) |
Sähköpostiosoite | |
user_id | Käyttäjätunniste (PAKOLLINEN) |
context_id | Kontekstin tunniste (PAKOLLINEN) |
context_title | Kontekstin nimi (PAKOLLINEN) |
role | Rooli (student, teacher, admin) (PAKOLLINEN) |
city_id | Kunnan y-tunnus (PAKOLLINEN) |
school | Koulun nimi (PAKOLLINEN) |
school_id | Koulukoodi (PAKOLLINEN). Useampi koulukoodi voidaan välittää eroteltuna puolipisteellä. |
city | Kunta tekstimuodossa |
add_resource_callback_url | Oppimisalustan oppimateriaalin lisäys-URL. |
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. |
Tulevat parametrit:
Oppimisalusta kutsuu EduStoren rajapintaa /api/1.2/generic/token/view toimintoa ja välittää sinne sovitut parametrit POST-muodossa json-datana.
Mikäli EduStore hyväksyy selauksen, palauttaa se URL-osoitteen, johon oppimisalusta ohjaa käyttäjän.
Jotta voit aloittaa integraation rakentamisen, sinulla tulee olla tiedossasi Edustorelta saatu API-avain, API-tunniste ja rajapinnan osoite. API-tunnukset ovat organisaatiokohtaisia, joten organisaatiosi tulee olla Edustoressa.
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 kirjaa käyttäjän sisään. Onnistuneen pyynnön paluuviestinä saadaan URL-osoite, jolla käyttäjä voidaan ohjata Edustoreen.
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-pyyntö välittää Edustoren rajapintaan tiedot käyttäjästä ja tiedon avattavasta materiaalista.
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" }