Tutte le api di MeetMe sono disponibili previa autenticazione.
Login
Il login può essere eseguito tramite la normale procedura di login, nel caso non si abbia a disposizione un token valido, oppure si può eseguire un qualunque richiesta inserendo l'header authorization con l'indice "token". Il token si può recuperare eseguendo una procedura di login con credenziali.
Il token ha sempre una lunghezza di 40 caratteri.
Login tramite credenziali
Il login viene eseguito tramite POST alla url "user/login-api" e con i parametri LoginForm[email] e LoginForm[password].
Nel caso di login errato viene restituito un json con indice "success" = false.
Se il login va a buon fine, viene restituito un json con due indici: "success"=true e "data" contenente i dati dell'utente, tra cui il token.
{ "success": true, "data": { "id": 1, "name": "John", "surname": "Doe", "email": "user@example.org", "username": "marko@infordata.it", "token": "9xx50xx4xx0xx72xx29a89xxdcaxx9cxxdxx67xx", } }
Login tramite token
Per eseguire il login tramite token basta accedere direttamente alla route interessata inserendo però l'header authorization con valore "token=xxxxxxxxxxxxxx".
Richieste GET
Di seguito sono elencate le entità per le quali è disponibile una chiamata GET:
Entità | Route di base | Azione | Parametri opzionali | Dati restituiti |
---|---|---|---|---|
Badge | badge | index | ||
Contatti | contact | index | page size | |
Eventi | event | get-app-events | Ritorna tutti gli eventi figli attivi. | |
event | get-options?event_id=event_id | Ritorna tutte le opzioni per l'evento specificato. | ||
Liste | list | index | ||
Luoghi | hall | index | ||
Mailing | mailing | index | ||
Partecipanti | participant | index | page size | |
Postazioni | location | index | ||
Timbratori | timestamper | index |
Parametri delle richieste GET
Le richieste GET devono specificare il formato di risposta desiderato. Il parametro deve avere indice "type" e deve essere passato in GET. Per ora è disponibile solo il formato json.
SOLO le azioni "index" permettono di utilizzare i filtri e le relazioni (spiegate di seguito).
Filtri per azioni index
Il filtro è un parametro GET che specifica il campo su cui applicare il filtro e il suo valore.
Per comporre il filtro, si usa il seguente formato: {route di base}Search[{campo}]=valore.
IMPORTANTE: la route di base deve essere con la prima lettera maiuscola.
Esempi:
ListSearch[id]=6 ritorna solo la lista con id = 6
ContactSearch[name]=paolo&ContactSearch[surname]=rossi ritorna solo i contatti con nome "paolo" e cognome "rossi".
Relazioni per azioni index
È possibile specificare le relazioni da ottenere insieme al modello richiesto. Il parametro deve avere indice "relations" e deve essere passato in GET.
Esempio:
relations[]=customer ritorna il modello cliente dell'entità ricercata
relations[]=customer&relations[]=contacts ritorna il modello cliente e i modelli contatti dell'entità ricercata.
Parametri opzionali
Page e size
Questi due parametri sono gestiti in coppia e permetto la gestione della paginazione. Sono parametri GET e hanno rispettivamente chiavi "page" e "size".
"page" indica il numero di pagina richiesto mentre "size" il numero di elementi per pagina.
Esempi completi di richieste
/list/index?accessToken=xxxxxxxxxxxxxxxxxxxxxxxxx&type=json
/list/index?accessToken=xxxxxxxxxxxxxxxxxxxxxxxxx&type=json&ListSearch%5Bid%5D=6
/list/index?accessToken=xxxxxxxxxxxxxxxxxxxxxxxxx&type=json&ListSearch%5Bid%5D=6&relations[]=customer
/list/index?accessToken=xxxxxxxxxxxxxxxxxxxxxxxxx&type=json&ListSearch%5Bid%5D=6&relations[]=customer&relations[]=contacts
Richieste POST
Le richieste POST devono essere inviate con due header http:
Content-Type: application/x-www-form-urlencoded
Authorization: token=xxxxxxxxxxxxxxxxxxxxxxxxx
Di seguito sono elencate le url disponibili:
URL | Parametri | Azione eseguita |
---|---|---|
customer/change-default-event | default_event_id (int) | Imposta l'evento di default per l'utente attualmente loggato. |
registrations/register | contact_id (int) event_id (int) registration_time (int) non obbligatorio timestamper_id (int) non obbligatorio | Accredita il contatto per l'evento. Se si invia anche il parametro registration_time, questo viene utilizzato per impostare il registration_time del partecipante. Quindi questo parametro deve essere inviato solo nel caso si esegua un accredito quando il server non è raggiungibile. Il parametro corrisponde ai secondi dalla Unix Epoch. Se si invia anche il parametro timestamper_id, questo viene utilizzato per creare una timbratura sul timbratore specificato. |
registrations/add?id=event_id&type=json | event_id (int) in GET type=json in GET Contact[campo] in POST registration_time (int) non obbligatorio in POST timestamper_id (int) non obbligatorio in POST | Crea un contatto, il partecipante e lo accredita. I dati del contatto devono essere passati in POST e nessun dato è obbligatorio. I dati devono essere inviata con chiave Contact[campo]. Quindi, per inviare il nome ed il cognome, si invieranno i seguenti dati: Contact[name]=paolo Contact[surname]=rossi Se si invia anche il parametro registration_time, questo viene utilizzato per impostare il registration_time del partecipante. Quindi questo parametro deve essere inviato solo nel caso si esegua un accredito quando il server non è raggiungibile. Il parametro corrisponde ai secondi dalla Unix Epoch. Se si invia anche il parametro timestamper_id, questo viene utilizzato per creare una timbratura sul timbratore specificato. |