Documentazione API esterne mobspot.it

Transcript

Documentazione API esterne mobspot.it
API MOBSPOT PER RIVENDITORI
RELEASE 25/03/2016
API PER L'INTERFACCIAMENTO DA APPLICATIVI ESTERNI
R&D communication S.r.l.
Via Dei Castagni, 9 - 37141 Montorio Verona
Tel. 0458841199 - Fax. 0458841224
www.rdcom.it - [email protected]
CF e P.Iva 03269830232
SOMMARIO
API MOBSPOT PER RIVENDITORI .................................................................................................................................... 1
INTRODUZIONE .................................................................................................................................................................... 3
ESTRAZIONE PROFILAZIONI............................................................................................................................................. 4
....................................................................................................... 5
ESTRAZIONE CAP DI UN DETERMINATO COMUNE .................................................................................................. 9
ESTRAZIONE CAP LIMITROFI AD UN DETERMINATO COMUNE........................................................................ 10
.............................................................. 12
ESTRAZIONE CARATTERI ACCETTATI PER UNA CAMPAGNA............................................................................. 13
.......................... 14
UNA CAMPAGNA .............................................................................................................................................................. 15
CARICAMENTO MANLEVA ............................................................................................................................................. 16
ESTRAZIONE STATO ACCETTAZIONE MANLEVA E NUMERO INTERAZIONI ................................................. 17
ESTRAZIONE INTERAZIONI CORRETTE CAMPAGNA ............................................................................................. 19
ESTRAZIONE CREDITI DISPONIBILI ............................................................................................................................. 20
ESTRAZIONE INFORMAZIONI UTENTE ...................................................................................................................... 21
ESTRAZIONE COSTO CAMPAGNA............................................................................................................................... 22
ACCODAMENTO CAMPAGNA ...................................................................................................................................... 24
ESTRAZIONE RIEPILOGHI CAMPAGNE....................................................................................................................... 26
ESTRAZIONE DETTAGLIO CAMPAGNA...................................................................................................................... 28
ELIMINAZIONE CAMPAGNA.......................................................................................................................................... 30
ESEMPIO............................................................................................................................................................................... 32
TABELLA DEI CODICI DI ERRORE ................................................................................................................................. 46
Pagina
2/47
INTRODUZIONE
E' possibile l'utilizzo delle suddette API previa autorizzazione dell'Ufficio Tecnico.
Pagina
3/47
ESTRAZIONE PROFILAZIONI
Questa API permette di recuperare le possibili profilazioni di estrazione numerosità contatti dal
sistema Mobspot.
(POST o GET)
:
Pagina
4/47
http://api.mobspot.it/getProfilazioni.php
passando il seguente parametro obbligatorio:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
deve contenere le seguenti proprietà:
Proprietà
username
verify_code
Descrizione
può essere per esempio calcolato tramite la funzione php md5().
Esempio di calcolo del valore di
username = prova
password = testing
verify_code = MD5(provatesting)  1c4eb3ca4a3286f56f3c75ec13ce5680
Esempio
:
http://api.mobspot.it/getProfilazioni.php?auth={"username":"xxxx","verify_code":"0b0cfc07fca81
c956ab9181d8576f4a8"}
della chiamata e
corretti verrà ritornata una stringa in formato
JSON contente un array di oggetti aventi le seguenti proprietà:
Proprietà
id_prof
name
values
Proprietà
id_value
value
value2
Descrizione
Id della profilazione.
Nome della profilazione.
Array contenente i valori di profilazione ed i rispettivi id.
Per i
Descrizione
Id del valore di profilazione.
Valore di profilazione.
Nel caso delle province conterrà la sigla.
Valore di profilazione alternativo: questa proprietà sarà presente solo per le
province e conterrà il nome della provincia per intero.
Esempio di esito ritornato:
[{"id_prof":"1","name":"Sesso","values":[{"id_value":"2","value":"Femmine"},{"id_value":"1","value":"
Maschi"}]},{...},{...},{...}]
Pagina
5/47
(dove {
}
le profilazioni successive)
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
id_prof
1
name
Sesso
2
Eta
3
4
7
Provincia
Tipo campagna
Cap
Descrizione
Genere con cui poter profilare i contatti disponibili.
Età in anni. Valore minimo: 18 anni. Valore massimo: 66+ (66 anni
e oltre).
Provincia italiana.
Tipo di messaggio che si desidera inviare.
Codice di avviamento postale.
ESTRAZIONE
TOTALI E INVIABILI
Questa API restituisce le numerosità di contatti presenti nel sistema che corrispondono alle
caratteristiche passate in ingresso. Inoltre restituisce il numero di sms che è possibile scegliere
per una campagna effettuata sul medesimo target di profilazione.
http://api.mobspot.it/getNumerosita.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Descrizione
Oggetto in formato JSON contenente le credenziali.
Array in formato JSON contenente le profilazioni desiderate.
Proprietà
username
Descrizione
verify_code
username = prova
password = testing
request = [{"id_prof":"4","values":["1"]}]
verify_code = MD5(prova[{"id_prof":"4","values":["1"]}]testing) 
e147a0f8c8e983b8efae7e5de2b85037
Pagina
6/47
Proprietà
id_prof
values
Descrizione
Id della profilazione.
Array contenenti gli id dei valori per il quale si vuole profilare la ricerca. Nel caso
dei Cap, si devono passare direttamente i valori desiderati.
Anche nel caso non si vogliano impostare profilazioni specifiche
(vedi Esempio 1).
Esempio 1
:
http://api.mobspot.it/getNumerosita.php?auth={"username":"1234","verify_code":"25d55ad283a
a400af464c76d713c07ad"}&request=[]
Esempio 2
:
http://api.mobspot.it/getNumerosita.php?auth={"username":"4321","verify_code":"196f48070ebf
023d60bb7362efee8fb9"}&request=[{"id_prof":"4","values":["1"]},{"id_prof":"2","values":["1","10"]}]
Per ogni profilazione, ci sono delle restrizioni e dei controlli differenti, come riportato di seguito
in tabella.
Profilazione
Sesso
Età
Provincia
Cap
Controlli e restrizioni
Controllo degli id dei valori passati.
Controllo degli id dei valori passati.
Restrizioni: devono essere sempre passati 2 valori,
desiderato.
Controllo degli id dei valori passati.
Controllo della sintassi dei valori passati (5 caratteri numerici per ciascun cap).
della chiamata e
sono corretti verrà ritornata una stringa in formato
JSON contente un array di oggetti aventi le seguenti proprietà:
Proprietà
totale
id_tipocampagna
pacchetti
Descrizione
Numerosità totale.
Id del tipo di campagna a cui si riferisce la numerosità.
Array contenente i pacchetti
Campo
personalizzato
Descrizione
Indica se è possibile scegliere un valore arbitrario di
sms da inviare per una campagna che utilizza la
medesima profilazione ed è del medesimo tipo.
possibile scegliere una quantità di sms a piacere,
due valori ritornati
scegliere come numerosità inviabile (per una
campagna che utilizza la medesima profilazione e il
medesimo tipo di campagna) uno a scelta tra i valori
.
Array contenente le numerosità che possono essere
scelte per inviare una campagna che utilizza la
medesima profilazione ed è del medesimo tipo. In
caso questo array sia vuoto, vuol dire che non è
possibile accodare una campagna che utilizza la
medesima profilazione ed è del medesimo tipo. In
di numerosità per i quali è possibile accodare una
campagna con medesima profilazione e medesimo
tipo. Questi valori saranno sempre compresi tra un
valore minimo e un valore massimo. Il valore massimo
pacchetto
della risposta). Sarà ritornato un solo valore in caso il
il campo
, verranno
inclusa e compresa tra questi due valori. In caso il
potrà scegliere solo tale valore in caso scelga di
accodare una campagna con la medesima
profilazione ed il medesimo tipo.
Se tra le profilazioni è stato aggiunto anche il tipo di campagna
riferita ovviamente al tipo di campagna scelto, altrimenti il numero di celle sarà equivalente al
numero di tipologie di campagna disponibili.
Esempio di esito ritornato 1
[{"totale":"123456","id_campagna":"0","pacchetti":{"personalizzato":"SI","pacchetto":["1","123456"]
}},{"totale":"5736","id_campagna":"1","pacchetti":{"personalizzato":"NO","pacchetto":["1000","2000
","5000"]}}]
Esempio di esito ritornato
Pagina
7/47
[{"totale":1463830,"id_tipocampagna":"1","pacchetti":{"personalizzato":"NO","pacchetto":["1000","
2000"]}}]
Esempi di risposte JSON, con la descrizione specifica per le numerosità inviabili:
Pagina
{"totale":"674","id_campagna":"0","pacchetti":{"personalizzato":"NO","pacchetto":[]}}
8/47
La numerosità ritornata indica che sono disponibili 674 contatti che corrispondono alla
profilazione cercata. Purtroppo questo numero è inferiore alla numerosità minima accettata dal
sistema, quindi non è possibile richiedere una campagna per questa profilazione.
{"totale":"1432","id_campagna":"1","pacchetti":{"personalizzato":"NO","pacchetto":["1000"]}}
La numerosità ritornata indica che sono disponibili 1432 contatti che corrispondono alla
una
campagna da 1432 contatti.
{"totale":"1432","id_campagna":"2","pacchetti":{"personalizzato":"SI","pacchetto":["1000","1432"]}}
La numerosità ritornata indica che sono disponibili 1432 contatti che corrispondono alla
campagna da 1432 contatti, oppure anche di un qualsiasi valore compreso tra 1000 e 1432.
{"totale":"2734","id_campagna":"0","pacchetti":{"personalizzato":"NO","pacchetto":["1000","2000","
2734"]}}
La numerosità ritornata indica che sono disponibili 2734 contatti che corrispondono alla
contatti, oppure da 2734 contatti.
{"totale":"2734","id_campagna":"1","pacchetti":{"personalizzato":"SI","pacchetto":["1000","2734"]}}
La numerosità ritornata indica che sono disponibili 2734 contatti che corrispondono alla
campagna da 2734 contatti, oppure anche di un qualsiasi valore compreso tra 1000 e 2734.
{"totale":"5736","id_campagna":"2","pacchetti":{"personalizzato":"NO","pacchetto":["1000","2000","
5000","5736"]}}
La numerosità ritornata indica che sono disponibili 5736 contatti che corrispondono alla
ntatti oppure da 2000
contatti, oppure da 5000 oppure da 5736 contatti.
{"totale":"5736","id_campagna":"0","pacchetti":{"minimo":"1000","personalizzato":"SI","pacchetto":
["1000","5736"]}}
La numerosità ritornata indica che sono disponibili 5736 contatti che corrispondono alla
campagna da 5736 contatti, oppure anche di un qualsiasi valore compreso tra 1000 e 5736.
Pagina
9/47
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESTRAZIONE CAP DI UN DETERMINATO COMUNE
Questa API restituisce i cap appartenenti ad un comune indicato. La stringa alfanumerica passata
o delle stringhe alfanumeriche che identificano i
comuni italiani. Quindi è possibile che data una stringa in ingresso, la funzione possa restituire
più comuni che contengono tale stringa.
dirizzo:
http://api.mobspot.it/getCapComune.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Proprietà
username
Descrizione
Oggetto in formato JSON contenente le credenziali.
Oggetto in formato JSON contenente il comune per il quale si vuole recuperare la
lista dei Cap.
Descrizione
verify_code
Esempio di
username = prova
password = testing
request = {"comune":"Roma"}
verify_code = MD5(prova{"comune":"Roma"}testing)  c948ef043974dbaa1d97d4c72cbaf6ed
una singola proprietà:
Proprietà
comune
Descrizione
:
Pagina
http://api.mobspot.it/getCapComune.php?auth={"username":"5555","verify_code":"52f485b6d92
7847043f6fa1dd1ab8de4"}&request={"comune":"Belluno"}
JSON contente un array di oggetti aventi le seguenti proprietà:
Proprietà
comune
Descrizione
Comune recuperato dalla stringa passata nella request. La stringa passata deve
essere di almeno 2 caratteri e la ricerca non sarà case-sensitive (cioè non si terrà
in considerazione la differenza tra caratteri minuscoli e caratteri maiuscoli).
cap
Esempio di esito ritornato
[{"comune":"Belluno", "cap":["32100"]}, {"comune":"Brentino Belluno", "cap":["37020"]}]
corrispondono rispetto alla stringa ricercata.
In caso non venga riconosciuto alcun comune italiano per la richiesta effettuata, verrà ritornato
un elemento vuoto.
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESTRAZIONE CAP LIMITROFI AD UN DETERMINATO COMUNE
Questa API restituisce i cap localizzati geograficamente nelle vicinanze di un cap di partenza. Un
cap si trova nelle vicinanze di un altro se la sua distanza è minore della distanza massima passata
http://api.mobspot.it/getCapLimitrofi.php
passando i seguenti parametri obbligatori:
10/47
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
Oggetto in formato JSON contenente il cap di partenza per la ricerca, e la
distanza in km entro la quale voler considerare i cap come limitrofi.
request
Proprietà
username
Pagina
Descrizione
11/47
verify_code
username = prova
password = testing
request = [{"cap":"38100", "distanza":"10"}]
verify_code = MD5(prova[{"cap":"38100", "distanza":"10"}]testing) 
6b96e1f4536ca9a66814bd9fd5b9fee4
rietà:
Proprietà
cap
distanza
Descrizione
Cap di partenza attorno al quale estrarre i cap limitrofi.
Km di distanza entro i quali considerare i cap da estrarre. Le distanze accettate
sono solo 5, 10, 20, 35 e 50 Km.
:
http://api.mobspot.it/getCapLimitrofi.php?auth={"username":"wwww","verify_code":"9b5ceda05
06e4bf0207cc6bfb4658982"}&request={"cap":"32100", "distanza":"10"}
JSON contente un array di oggetti aventi la seguente proprietà:
Proprietà
cap
Descrizione
Esempio di esito ritornato
{"cap":["32100", "32020"]}
Come si
verrà ritornato un elemento vuoto.
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
12/47
CAMPAGNA
Questa API restituisce la spiegazione degli stati nei quali si può trovare una campagna.
http://api.mobspot.it/getStatiCampagna.php
passando il seguente parametro obbligatorio:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
deve contenere le seguenti proprietà:
Proprietà
username
verify_code
Descrizione
sempio calcolato tramite la funzione php md5().
http://api.mobspot.it/getStatiCampagna.php?auth={"username":"yyyy","verify_code":"d3cfff9bb
035198d2ed56c83b1613638"}
no corretti verrà ritornata una stringa in formato
JSON contente un array di oggetti aventi le seguenti proprietà:
Proprietà
statoid
statospiegazione
Pagina
Descrizione
Identificativo dello stato in cui si trova la campagna.
Spiegazione dello stato in cui si trova la campagna.
Esempio di esito ritornato:
[{"statoid":"3","statospiegazione":"Campagna
confermata"},{"statoid":"5","statospiegazione":"Erogazione campagna in corso"}]
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESTRAZIONE CARATTERI ACCETTATI PER UNA CAMPAGNA
Questa API restituisce i caratteri accettati per una campagna.
13/47
http://api.mobspot.it/getCaratteriAccettati.php
passando il seguente parametro obbligatorio:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
Proprietà
username
verify_code
Descrizione
sempio calcolato tramite la funzione php md5().
:
http://api.mobspot.it/getCaratteriAccettati.php?auth={"username":"zzzz","verify_code":"132f041
e933befadc47dab2217465d0a"}
JSON contente un array di oggetti aventi le seguenti proprietà:
Proprietà
tipocampagna
Pagina
Descrizione
Tipo di campagna. Rispecchia i valori restituiti dalla API getProfilazioni.php per
caratteriaccettati
codificato in JSON. La codifica utilizzata è UTF8.
Esempio di esito ritornato:
[{"tipocampagna":"0","caratteriaccettati":" !#%\"&'()\u20ac*+,.\/0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ\u00e0\u00e8\u00ec\u00f2\u00f9\u00e
9\u00a3$[]{}^@#\u00a7abcdefghijklmnopqrstuvwxyz"},{"tipocampagna":"1","caratteriaccettati":"
!#$%\"&'()*+,.\/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`\u00a3\u00a5\u00a7\u00bf\u00c4
\u00c6\u00c9\u00d1\u00d6\u00d8\u00dc\u00df\u00e0\u00e4\u00e5\u00e6\u00e8\u00e9\u00f
1\u00f2\u00f6\u00f8\u00f9\u00fc\u00ecabcdefghijklmnopqrstuvwxyz"},{"tipocampagna":"2","ca
ratteriaccettati":" !#%\"&'()\u20ac*+,.\/0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ\u00e0\u00e8\u00ec\u00f2\u00f9\u00e
9\u00a3$[]{}^@#\u00a7abcdefghijklmnopqrstuvwxyz"}]
Pagina
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
BILE
CONFERMARE UNA CAMPAGNA
Questa API restituisce le date nelle quali non è possibile confermare una campagna. Oltre alle
date restituite, il sistema non accetterà campagne confermate nei giorni di sabato e domenica.
http://api.mobspot.it/getDateNegate.php
passando il seguente parametro obbligatorio:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
proprietà:
Proprietà
username
verify_code
Descrizione
e per esempio calcolato tramite la funzione php md5().
Esempio di chiamata a
:
http://api.mobspot.it/getDateNegate.php?auth={"username":"1111","verify_code":"98c4524b0e5
07a11ba1e7b04e8487c19"}
stringa in formato
JSON contente un array di oggetti aventi la seguente proprietà:
Proprietà
datenegate
Descrizione
Array contenente le date nelle quali non è possibile confermare una campagna.
Le date ritornate sono formattate in questo modo: AAAA-MM-DD
.
Esempio di esito ritornato:
14/47
{"datenegate":["2014-08-15","2014-11-01","2014-12-08"]}
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
Pagina
15/47
ESTRAZIONE DATA MINIMA E DATA MASSIMA ENTRO LE
confermare una campagna (rispettando ovviamente i vincoli de
getDateNegate.php).
http://api.mobspot.it/getDateMinMax.php
passando il seguente parametro obbligatorio:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
Proprietà
username
verify_code
Descrizione
può essere per esempio calcolato tramite la funzione php md5().
:
http://api.mobspot.it/getDateMinMax.php?auth={"username":"2222","verify_code":"ecf0d81f719
26dec9edcd16b39fa7ae4"}
JSON contente un array di oggetti aventi le seguenti proprietà:
Proprietà
dataminima
Descrizione
Data di partenza dalla quale è possibile confermare una campagna. La data
ritornata è formattata in questo modo: AAAA-MM-
datamassima
Data massima entro la quale è possibile confermare una campagna. La data
ritornata è formattata in questo modo: AAAA-MM-
Esempio di esito ritornato:
{"dataminima":"2014-06-25","datamassima":"2015-06-25"}
CARICAMENTO MANLEVA
Pagina
16/47
campagna, è necessario fornire debitamente compilato il documento di richiesta denominato
e caricarlo direttamente via API. Una volta terminato il
processo di caricamento, è necessario attendere che la manleva venga verificata dal sistema.
, si consiglia POST per le dimensioni
dei dati da passare
http://api.mobspot.it/setManleva.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Proprietà
username
verify_code
Descrizione
Oggetto in formato JSON contenente le credenziali.
Ogget
in base 64 dei byte che formano il file da caricare.
Descrizione
MD5 calcolato con
Esempio
username = prova
password = testing
request = {"id_campagna":"1234567890",
"file_manleva":"VGVzdCBmaWxlIGRpIG1hbmxldmEgcGRm"}
verify_code = MD5(prova{"id_campagna":"1234567890","file_manleva":
"VGVzdCBmaWxlIGRpIG1hbmxldmEgcGRm"}testing) 
97551b1334c2969f05c3512b75352944
Proprietà
id_campagna
file_manleva
Descrizione
Identificativo univoco della campagna per la quale si intende caricare il file di
manleva.
Valore in base64 dei byte che formano il file di manleva. Il file deve essere in
formato pdf.
In caso di caricamento corretto verrà ritornata la seguente stringa JSON:
{"esitocaricamento":"OK"}
Pagina
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESTRAZIONE STATO ACCETTAZIONE MANLEVA E NUMERO
INTERAZIONI
Una volta caricata la manleva nel sistema, è possibile richiedere un aggiornamento sullo stato
della sua accettazione. Se la manleva viene autorizzata dal sistema, la risposta conterrà anche il
numero di interazioni avute per la campagna.
http://api.mobspot.it/getStatoManleva.php
passando i seguenti parametri obbligatori:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
request
recuperare lo stato della manleva e il numero delle interazioni.
Proprietà
username
Descrizione
verify_code
username = prova
password = testing
request = {"id_campagna":"1234567890"}
verify_code = MD5(prova{"id_campagna":"1234567890"}testing) 
b295d6952e131ce274911e8c6a82fb8d
e contenere una singola proprietà:
Proprietà
id_campagna
Descrizione
Identificativo univoco della campagna per la quale si intende recuperare lo stato
di autorizzazione della manleva e il numero delle interazioni avute.
17/47
:
Pagina
http://api.mobspot.it/getStatoManleva.php?auth={"username":"cccc","verify_code":"e7fc14d5db
38955e74283529f3fd1399"}&request={"id_campagna":"0987654321"}
JSON contente un oggetto avente le seguente proprietà:
Proprietà
statomanleva
interazioni
Descrizione
Stato nella quale può trovarsi la procedura di autorizzazione di una manleva. I
valori possibili sono:
1 => Manleva non ancora caricata, oppure rifiutata (in questo caso è necessario
caricare una nuova manleva in quanto quella precedente non è stata autorizzata)
2 => Manleva caricata ma non ancora valutata dal sistema
3 => Manleva caricata e autorizzata
Oggetto contenente il numero di interazioni corrette e il numero di interazioni
non corrette.
Esempio di esito ritornato (per manleva non ancora caricata):
{"statomanleva":"1":"",
}
Esempio di esito ritornato (per manleva non ancora valutata):
{"statomanleva":"2","
}
Esempio di esito ritornato (per manleva autorizzata):
{"statomanleva":"3","interazioni":{"ok":"65","err":"2"}}
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
18/47
ESTRAZIONE INTERAZIONI CORRETTE CAMPAGNA
Questa API permette di recuperare le interazioni che si sono avute per una campagna interattiva.
Restituisce i mittenti che hanno interagito correttamente, con i relativi timestamp di interazione.
Pagina
19/47
http://api.mobspot.it/getInterazioni.php
passando i seguenti parametri obbligatori:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
si vogliono
request
recuperare le interazioni.
Proprietà
username
Descrizione
verify_code
username = prova
password = testing
request = [{"id_campagna":"0123456789"}]
verify_code = MD5(prova[{"id_campagna":"0123456789"}]testing) 
c89574133f69f6d734d6c69eb9e83865
re una singola proprietà:
Proprietà
Descrizione
Identificativo univoco della campagna per la quale si intendono recuperare le
id_campagna
corrette.
Non è possibile
:
http://api.mobspot.it/getInterazioni.php?auth={"username":"dddd","verify_code":"5b9b911b8c5
a4388459928704930c923"}&request={"id_campagna":"5555555555"}
JSON contente un array di oggetti aventi le seguenti proprietà:
Proprietà
Descrizione
-MM-DD HH
timestamp
contatto
Pagina
secondo
Numero di cellulare (comprensivo di prefisso internazionale) che ha interagito
correttamente alla campagna.
In caso non sia presente alcuna interazione, verrà restituito il seguente esito:
[]
In caso siano presenti delle interazioni, verrà restituito un codice del tipo:
[{"timestamp":"2014-06-23 09:15:00","contatto":"+393331122334"},{"timestamp":"2014-06-23
16:30:25","contatto":"+393456789012"},{"timestamp":"2014-06-24
18:26:55","contatto":"+393272727272"}]
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESTRAZIONE CREDITI DISPONIBILI
Questa API restituisce i crediti disponibili per un utente.
http://api.mobspot.it/getCredito.php
passando il seguente parametro obbligatorio:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
Proprietà
username
verify_code
Descrizione
20/47
:
http://api.mobspot.it/getCredito.php?auth={"username":"3333","verify_code":"242c94cb2c7c5db
6e3e83c47a54c078e"}
ormato
JSON contente la seguente proprietà:
Proprietà
credito
21/47
Descrizione
Esempio di esito ritornato
{"credito":"50000"}
ESTRAZIONE INFORMAZIONI UTENTE
Questa API restituisce
http://api.mobspot.it/getInfoUtente.php
passando il seguente parametro obbligatorio:
Parametro
auth
Descrizione
Oggetto in formato JSON contenente le credenziali.
Proprietà
username
verify_code
Descrizione
tramite la funzione php md5().
http://api.mobspot.it/getInfoUtente.php?auth={"username":"4444","verify_code":"a27aaf06f5c66
f3427ff02386225cdd0"}
Pagina
della chiamata e
JSON contente le seguenti proprietà:
Proprietà
Nome
Cognome
Ragionesociale
Piva
CodFisc
Indirizzo
Cap
Localita
Comune
Provincia
Nazione
Telefono
Cellulare
Fax
Email
Descrizione
Pagina
Partita Iva
Nazione
Esempio di esito ritornato:
{"Nome":"Mario", "Cognome":"Rossi", "Ragionesociale":"Mario Rossi Snc",
"Piva":"MRARSS50A01X000X", "CodFisc":"01234567890", "Indirizzo":"Piazza Duomo 1",
"Cap":"20121", "Localita":"", "Comune":"Milano", "Provincia":"MI", "Nazione":"Italia",
"Telefono":"020202", "Cellulare":"+393333333333", "Fax":"0288452170", "Email":"[email protected]"}
ESTRAZIONE COSTO CAMPAGNA
Questa API restituisce il costo in crediti di una campagna, fornendo in ingresso la numerosità
desiderata e il tipo di campagna scelta.
http://api.mobspot.it/getCostoCampagna.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Descrizione
Oggetto in formato JSON contenente le credenziali.
Oggetto in formato JSON contenente la numerosità e il tipo di campagna che
identificano la richiesta per la quale si vuole recuperare il costo.
22/47
Proprietà
username
Descrizione
verify_code
Pagina
23/47
username = prova
password = testing
request = {"numerosita":"5000", "tipocampagna":"1"}
verify_code = MD5(prova{"numerosita":"5000", "tipocampagna":"1"}testing) 
ac1220eae95c70d97b028e69796e1435
Proprietà
numerosita
Descrizione
Numerosità di sms che si vuole inviare.
tipocampagna
uuuu
http://api.mobspot.it/getCapComune.php?auth={"username":"7777","verify_code":"02f6845fe45
415913f4b950a379c023d"}&request={"numerosita":"2000", "tipocampagna":"2"}
JSON contente
Proprietà
costo
:
Descrizione
Costo in crediti relativo alla numerosità e al tipo di campagna passati in ingresso
alla funzione.
Esempio di esito ritornato:
{"costo":"1500"}
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ACCODAMENTO CAMPAGNA
Con questa API è possibile accodare una campagna, specificando il target, il tipo di campagna, e
altre informazioni necessarie.
Pagina
http://api.mobspot.it/setCampagna.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Descrizione
Oggetto in formato JSON contenente le credenziali.
Array in formato JSON contenente le caratteristiche della campagna da accodare.
Proprietà
username
Descrizione
verify_code
Proprietà
Descrizione
Array contenente la profilazione scelta e il tipo di campagna desiderato.
campagna
getNumerosita.php.
datainvio
testo
numerosita
-MMcampagna.
Testo del messaggio della campagna da inviare. Il testo deve essere lungo al
massimo 150 caratteri GSM, codificati un UTF8.
Numerosità sms che si vuole inviare.
Vi sono inoltre due proprietà che sono facoltative ma che diventano obbligatorie in base al tipo
di campagna scelto. Le due proprietà sono:
Proprietà
mittente
parolachiave
Descrizione
richieda una campagna a mittente personalizzato (impostando un id_prof 4
). Il mittente deve essere una stringa numerica di
massimo 16 caratteri (comprensiva di prefisso internazionale) o una stringa
alfanumerica di massimo 11 caratteri (come da direttive dello standard GSM).
La parola chiave deve essere di massimo 4 caratteri
numerici oppure di massimo 10 caratteri alfabetici.
Non è possibile utilizzare parole chiave alfanumeriche (sia caratteri alfabetici che
cifre).
Non sono ammessi spazi, punteggiatura o caratteri speciali.
24/47
Esempi corretti di parola chiave:
Esempi di parola chiave corretta
OK
150
CONFERMA
SI
Pagina
25/47
Infine vi sono 4 proprietà facoltative:
Proprietà
nome
note
hashtag
Descrizione
Stringa di massimo 50 caratteri che identifica il nome della campagna.
massimo di 240 caratteri.
Etichetta da associare alla campagna (si può associare lo stesso hashtag a più
campagne) per facilitarne la vostra gestione interna (ad esempio impostandoli
ca
inseriscano più hashtag, è possibile separarli usando lo spazio.
Esempi validi:
#hashtest #ottobre
#novembre2015
#primogruppo
via autorizzazione da richiedere
Il valore da inserire è una stringa di massimo 50 caratteri.
cliente
zione da richiedere
ESEMPIO
tutte
Ovviamente la paro
Utilizzando le API di recupero profilazioni e di numerosità, ha visto che sono disponibili 397145
oltre a 397145. Decide quindi di effettuare una campagna per 100000 contatti il giorno 31 luglio
2014. Ecco come strutturerà la sua richiesta:
http://api.mobspot.it/setCampagna.php?auth={"username":"utentetest","verify_code":"069a697f
a8c354f550d8bed3f5026d6d"}&request={"campagna":[{"id_prof":"1","values":["2"]},{"id_prof":"3","
values":["46","33"]},{"id_prof":"4","values":["2"]}],"datainvio":"2014-07-31","testo":"Cercasi
segretaria per uffici di Milano e Roma. Rispondere OK per aderire alla
ricerca!","numerosita":"100000","parolachiave":"OK"}
profilazione e il tipo di campagna desiderata. Essendo una campagna interattiva, viene passato
Pagina
26/47
sito
Proprietà
id
Descrizione
Identificativo univoco della campagna accodata.
Esempio
{"id":"123456789"}
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESTRAZIONE RIEPILOGHI CAMPAGNE
Con questa API è possibile estrarre il riepilogo delle campagne richieste.
http://api.mobspot.it/getCampagne.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Descrizione
Oggetto in formato JSON contenente le credenziali.
Array in formato JSON contenente le caratteristiche delle campagne da estrarre.
Proprietà
username
Descrizione
verify_code
MD5
oggetto
oggetto vuoto, se si vogliono estrarre tutte le campagne.
Oppure contenere uno o più dei seguenti parametri facoltativi, per poter effettuare una ricerca
mirata:
Proprietà
datainizio
datafine
statoid
tipocampagna
Descrizione
Indicare la data minima (inclusiva) di invio delle campagne che si vogliono
estrarre.
Indicare la data massima (inclusiva) di invio delle campagne che si vogliono
estrarre.
Array contenente lo stato delle campagne che si vogliono estrarre. Rispecchia i
valori restituiti dalla API getStatiCampagna.php
Array contenente il tipo delle campagne che si vogliono estrarre. Rispecchia i
valori
4
ESEMPIO 1: recupero di tutte le proprie campagne.
http://api.mobspot.it/getCampagne.php?auth={"username":"abcdef","verify_code":"e9e4adc6fb
515d394abd18abdefadd43"}&request={}
ESEMPIO 2: recupero di tutte le proprie campagne del 2013.
http://api.mobspot.it/getCampagne.php?auth={"username":"abcdef","verify_code":"087de9d9e0
05f2940edc6094c96edfe5"}&request={"datainizio":"2013-01-01","datafine":"2013-12-31"}
ESEMPIO 3: recupero di tutte le proprie campagne interattive. Le campagne interattive hanno
values
.
http://api.mobspot.it/getCampagne.php?auth={"username":"abcdef","verify_code":"36d95abf5a
aa3861cf139a81a461130c"}&request={"tipocampagna":"2"}
ESEMPIO 4: recupero di tutte le proprie campagne di gennaio 2014 già concluse. Le campagne
http://api.mobspot.it/getCampagne.php?auth={"username":"abcdef","verify_code":"deb0b7f454
d5fa1d274de8c414afa8ca"}&request={"datainizio":"2014-01-01","datafine":"2014-0131","statoid":"7"}
In caso la chiamata sia corretta, verrà ritornato un array contenente le campagne che
corrispondono alla ricerca effettuata. Per ogni campagna, verranno ritornate le seguenti
proprietà:
Pagina
27/47
Proprietà
id
datainvio
Descrizione
Identificativo univoco della campagna.
-MMcampagna.
Stato della campagna estratta. Rispecchia i valori restituiti dalla API
getStatiCampagna.php
Tipo della campagna estratta. Rispecchia i valori restituiti dalla API
statoid
tipocampagna
Pagina
28/47
Ecco un esempio di risposta alla richiesta estrazione campagne di novembre 2013:
[{"id":"123456","datainvio":"2013-1105","statoid":"7","tipocampagna":"0"},{"id":"7891011","datainvio":"2013-1112","statoid":"7","tipocampagna":"1"},{"id":"7891011","datainvio":"2013-1113","statoid":"7","tipocampagna":"0"},{"id":"12131415","datainvio":"2013-1127","statoid":"7","tipocampagna":"2"}]
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESTRAZIONE DETTAGLIO CAMPAGNA
Con questa API è possibile estrarre il dettaglio di una campagna.
http://api.mobspot.it/getCampagna.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Descrizione
Oggetto in formato JSON contenente le credenziali.
si vogliono recuperare tutte le informazioni.
deve contenere le seguenti proprietà:
Proprietà
username
verify_code
Descrizione
Proprietà
id
Descrizione
Identificativo univoco della campagna.
In caso la chiamata sia corretta, verrà ritornato un oggetto contenente le caratteristiche della
campagna estratta. Verranno ritornate le seguenti caratteristiche:
Proprietà
id
datainvio
statoid
campagna
testo
numerosita
costo
nome
note
cliente
hashtag
Pagina
Descrizione
Identificativo univoco della campagna.
-MMStato della campagna estratta. Rispecchia i valori restituiti dalla API
getStatiCampagna.php
.
getNumerosita.php.
Testo del messaggio della campagna.
Numerosità sms della campagna.
Costo della campagna in crediti.
Nome della campagna
Note inserite per la campagna
Cliente associato
Lista di hashtag inseriti separati da uno spazio
In base al tipo di campagna, possono essere ritornate anche le seguenti proprietà:
Proprietà
Descrizione
mittente
parolachiave
Parola chiave per le interazioni. E
ichiesta del tipo:
http://api.mobspot.it/getCampagna.php?auth={"username":"qwerty","verify_code":"51e0ea823f
27e9e3e57b06c0bac29fd7"}&request={"id":"55555555"}
La risposta potrebbe essere del tipo:
{"id":"55555555","datainvio":"2014-0101","statoid":"7","campagna":[{"id_prof":"7","values":["10121","10122","10123","10124","10125","10
126","10127","10128","10129","10130","10131","10132","10133","10134","10135","10136","10137","
10138","10139","10140","10141","10142","10143","10144","10145","10146","10147","10148","1014
9","10150","10151","10152","10153","10154","10155","10156"]},{"id_prof":"4","values":["1"]}],"testo":
"Accorri al panificio BuonPane! Da oggi aperto anche al domenica in Piazza Centrale numero
1.","numerosita":"5000","costo":"7500","mittente":"Panificio"}
29/47
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ELIMINAZIONE CAMPAGNA
Con questa API è possibile eliminare una campagna.
http://api.mobspot.it/delCampagna.php
passando i seguenti parametri obbligatori:
Parametro
auth
request
Proprietà
username
Descrizione
Oggetto in formato JSON contenente le credenziali.
eliminare.
Descrizione
verify_code
Proprietà
id
Descrizione
Identificativo univoco della campagna che si vuole eliminare.
eliminare le campagne che hanno
se la loro data di invio è una data che, al momento della richiesta di eliminazione,
è possibile scegliere come data di invio per una nuova campagna.
ESEMPIO
Oggi 1 gennaio 2014 il sistema (tramite le API getDateNegate.php e getDateMinMax.php)
chiesto sia inviata in data venerdì 3 gennaio, la seconda in data martedì 7 gennaio, la terza in
potrà eliminare solo le campagne del 7 e del 13
gennaio. Non potrà eliminare la campagna del 3 gennaio in quanto si è troppo in prossimità di
Pagina
30/47
richiesta effettuata:
Proprietà
cancellazione
Descrizione
Pagina
31/47
http://api.mobspot.it/delCampagna.php?auth={"username":"zxcvbnm","verify_code":"95e94bfaff
17a51bc90622f89d048dfa"}&request={"id":"9876543210"}
In caso la chiamata non sia corretta verrà ritornata una stringa in formato JSON contenente il
relativo codice di errore.
ESEMPIO
Presentiamo ora un esempio che pensiamo possa essere utile per capire il meccanismo delle API,
effettuare una campagna. Viene utilizzato il linguaggio php per gli esempi di codice riportati.
Pagina
32/47
getInfoUtente.php
$Username = "123utente";
$Password = "456password";
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Password)));
$UrlApi = "http://api.mobspot.it/getInfoUtente.php?auth=".urlencode($Aut);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "01. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "02. Errore json ritornato.";
}
if (empty($data->Nome))
{return "03. Utente non valido.";
}
Verificato di avere un account valido, estrae le profilazioni possibili. Vuole accodare una
campagna standard (non a mittente personalizzato, e neanche interattiva) per qualsiasi contatto
presente nel suo comune di residenza. Quindi cerca se tale tipo di campagna è attiva, e se può
profilare per cap (in seguito cercherà i cap del suo comune).
$UrlApi = "http://api.mobspot.it/getProfilazioni.php?auth=".urlencode($Aut);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "04. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "05. Errore json ritornato.";
}
Verifica poi se le profilazioni possibili soddisfano le sue richieste.
$Flag_ControlloPossoProfilarePerCap = 0;
$Id_Profilazioni_Cap = -1;
$Flag_ControlloPossoProfilarePerCampagnaStandard = 0;
$Id_Profilazioni_CampagnaStandard = -1;
$Valore_Profilazioni_CampagnaStandard = -1;
foreach ($data as $key_1 => $profilazioni)
{if ($profilazioni->name == "Cap")
{$Flag_ControlloPossoProfilarePerCap = 1;
$Id_Profilazioni_Cap = $profilazioni->id_prof;
}
if ($profilazioni->name == "Tipo campagna")
{foreach ($profilazioni->values as $key_2 => $valori)
{if ($valori->value == "Mittente Standard")
{$Flag_ControlloPossoProfilarePerCampagnaStandard = 1;
$Id_Profilazioni_CampagnaStandard = $profilazioni->id_prof;
$Valore_Profilazioni_CampagnaStandard = $valori->id_value;
}
}
}
}
if (($Flag_ControlloPossoProfilarePerCap == 0) || ($Id_Profilazioni_Cap == -1))
{return "06. Errore profilazione Cap non disponibile.";
}
if (($Flag_ControlloPossoProfilarePerCampagnaStandard == 0) || ($Id_Profilazioni_CampagnaStandard == -1) ||
($Valore_Profilazioni_CampagnaStandard == -1))
{return "07. Errore profilazione Campagna Mittente Standard non disponibile.";
}
estrarre i cap del suo comune. Richiama qui
$ComuneDiResidenza = "Brescello";
$Req = json_encode(array("comune"=>$ComuneDiResidenza));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getCapComune.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "08. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "09. Errore json ritornato.";
}
$Array_CapBrescello = array();
foreach ($data as $key_1 => $profilazioni)
{if (strtoupper($profilazioni->comune) == strtoupper($ComuneDiResidenza))
{foreach ($profilazioni->cap as $key_2 => $cap)
{$Array_CapBrescello[] = $cap;
}
}
}
if (count($Array_CapBrescello) < 1)
{return "10. Nessun cap nel comune ricercato.";
}
Pagina
33/47
tutte le informazioni per estrarre la numerosità disponibile nel sistema, e sapere
getNumerosita.php
$Req = json_encode(array(array("id_prof"=>(string)$Id_Profilazioni_Cap, "values"=>$Array_CapBrescello),
array("id_prof"=>(string)$Id_Profilazioni_CampagnaStandard, "values"=>$Valore_Profilazioni_CampagnaStandard)));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getNumerosita.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "11. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "12. Errore json ritornato.";
}
$Flag_ArrivoAllaNumerositaMinima = 0;
foreach ($data as $key_1 => $numerosita)
{// totale
// id_tipocampagna
// pacchetti -> personalizzato
// pacchetti -> pacchetto
if ($numerosita->totale > 0)
{// Trovati $numerosita->totale contatti per campagna di tipo $numerosita->id_tipocampagna
// Controllo se la numerosita' e' sufficiente
$Array_PacchettiInviabili = $numerosita->pacchetti->pacchetto;
if (count($Array_PacchettiInviabili) > 0)
{$Flag_ArrivoAllaNumerositaMinima = 1;
}
}
}
Ipotiz
vuole allargare il suo raggio di ricerca. E decide di estrarre i contatti attorno al suo comune di
residenza in un raggio di 10 Km. Per prima cosa deve estrarre i cap
Pagina
34/47
$Req = json_encode(array("cap"=>$Array_CapBrescello[0], "distanza"=>"10"));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getCapLimitrofi.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "13. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "14. Errore json ritornato.";
}
$Array_Cap10Km = $data->cap;
if (count($Array_Cap10Km) < 1)
{return "15. Nessun cap nei 10 km attorno al cap ".$Array_CapBrescello[0].".";
}
$Req = json_encode(array(array("id_prof"=>(string)$Id_Profilazioni_Cap, "values"=>$Array_Cap10Km),
array("id_prof"=>(string)$Id_Profilazioni_CampagnaStandard, "values"=>$Valore_Profilazioni_CampagnaStandard)));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getNumerosita.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "16. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data =7= NULL)
{return "18. Errore json ritornato.";
}
Ora estrae tutti i pacchetti possibili, per poi verificare in base al suo credito quale è il pacchetto
più grande che può utilizzare.
$Array_PacchettiInviabili = array();
foreach ($data as $key_1 => $numerosita)
{// totale
// id_tipocampagna
// pacchetti -> personalizzato
// pacchetti -> pacchetto
if ($numerosita->totale > 0)
{// Trovati $numerosita->totale contatti per campagna di tipo $numerosita->id_tipocampagna
// Controllo se la numerosita' e' sufficiente
$Array_PacchettiInviabili = $numerosita->pacchetti->pacchetto;
}
}
if (count($Array_PacchettiInviabili) < 1)
{return "18. Non ho pacchetti inviabili per questa campagna.";
}
Pagina
35/47
Per verificare quale sia il pacchetto più grande che lui possa inviare, deve prima estrarsi il proprio
getCredito.php
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Password)));
$UrlApi = "http://api.mobspot.it/getCredito.php?auth=".urlencode($Aut);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "19. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "20. Errore json ritornato.";
}
if (empty($data->credito))
{return "21. Utente non valido o credito pari a zero.";
}
$CreditoDisponibile = $data->credito;
$MassimaNumerositaInviabile = 0;
for ($i=0;$i<count($Array_PacchettiInviabili);$i++)
{$Req = json_encode(array("numerosita"=>$Array_PacchettiInviabili[$i],
"tipocampagna"=>$Valore_Profilazioni_CampagnaStandard));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getCostoCampagna.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "22. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "23. Errore json ritornato.";
}
if (!(isset($data->costo)))
{return "24. Utente non valido.";
}
$CostoQuestaCampagna = $data->costo;
if (($Array_PacchettiInviabili[$i] > $MassimaNumerositaInviabile) && ($CostoQuestaCampagna <= $CreditoDisponibile))
{$MassimaNumerositaInviabile = $Array_PacchettiInviabili[$i];
}
}
Pagina
36/47
Ora ha la numerosità massima disponibile che può utilizzare, in base ai contatti disponibili, alla
tipologia di campagna scelta e al suo credito. Il prossimo passo è quello di verificare quale sia la
prima data disponi
getDateMinMax.php
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Password)));
$UrlApi = "http://api.mobspot.it/getDateMinMax.php?auth=".urlencode($Aut);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "25. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "26. Errore json ritornato.";
}
if (empty($data->dataminima))
{return "27. Utente non valido.";
}
$PrimaDataDisponibile = $data->dataminima;
Per sicurezza, controlla inoltre che la data non sia una data negata. Questo passaggio non
sarebbe necessario,
getDateMinMax.php
volesse verificare prima una data che non è la prima disponibile. Richiama quindi
getDateNegate.php
quale sabato o domenica, lo script presentato cerca la prima data disponibile successiva.
Pagina
37/47
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Password)));
$UrlApi = "http://api.mobspot.it/getDateNegate.php?auth=".urlencode($Aut);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "28. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "29. Errore json ritornato.";
}
if (!(empty($data->datenegate)))
{$ArrayCopia = $data->datenegate;
$ControlloDataNegata = 0;
while ($ControlloDataNegata == 0)
{if ((in_array($PrimaDataDisponibile, $ArrayCopia)) ||
(date('l', strtotime($PrimaDataDisponibile)) == "Saturday") ||
(date('l', strtotime($PrimaDataDisponibile)) == "Sunday"))
{$PrimaDataDisponibile = date('Y-m-d', strtotime($PrimaDataDisponibile.' + 1 day'));
}
else
{$ControlloDataNegata = 1;
}
}
}
$Req = json_encode(array("campagna"=>array(array("id_prof"=>(string)$Id_Profilazioni_Cap, "values"=>$Array_Cap10Km),
array("id_prof"=>(string)$Id_Profilazioni_CampagnaStandard, "values"=>$Valore_Profilazioni_CampagnaStandard)),
"datainvio"=>$PrimaDataDisponibile, "testo"=>"Accorrete numerosi al nuovo panificio Mario Rossi. Piazza della Vittoria 1.",
"numerosita"=>$MassimaNumerositaInviabile));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/setCampagna.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "30. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "31. Errore json ritornato.";
}
if (!(isset($data->id)))
{return "32. Errore connessione.";
}
$IdQuestaCampagna = $data->id;
ltra per le campagne a
Pagina
38/47
$Req = json_encode(array("tipocampagna"=>$Valore_Profilazioni_CampagnaStandard));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getCampagne.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "33. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "34. Errore json ritornato.";
}
if (count($data) < 1)
{return "35. Errore connessione.";
}
$Flag_HoTrovatoLaCampagnaCheAvevoAccodato = 0;
foreach ($data as $key_1 => $riassuntocampagna)
{if ($riassuntocampagna->id == $IdQuestaCampagna)
{$Flag_HoTrovatoLaCampagnaCheAvevoAccodato = 1;
}
}
if ($Flag_HoTrovatoLaCampagnaCheAvevoAccodato == 0)
{return "36. Errore recupero campagna accodata.";
}
Dopo aver visto che la campagna è presente, ne estrae tutti i dettagli. Richiama la API
$Req = json_encode(array("id"=>$IdQuestaCampagna));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getCampagna.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "37. Errore connessione.";
}
$data = json_decode($data);
if ($data === NULL)
{return "38. Errore json ritornato.";
}
if (!(isset($data->id)))
{return "39. Errore connessione.";
}
if ($data->id != $IdQuestaCampagna)
{return "40. Errore recupero informazioni campagna.";
}
A questo punto ci ripensa e vuole cambiare tipologia di campagna. Vuole effettuare una
campagna interattiva. Essendo ancora nei termini prestabiliti, decide di eliminare la campagna.
Pagina
39/47
$Req = json_encode(array("id"=>$IdQuestaCampagna));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/delCampagna.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "41. Errore connessione.";
}
$data = json_decode($data);
if ($data === NULL)
{return "42. Errore json ritornato.";
}
if (!(isset($data->cancellazione)))
{return "43. Errore cancellazione.";
}
if ($data->cancellazione != "OK")
{return "44. Errore cancellazione.";
}
Dopo aver eliminato la campagna, controlla per sicurezza che gli siano stati restituiti i crediti.
getCredito.php
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Password)));
$UrlApi = "http://api.mobspot.it/getCredito.php?auth=".urlencode($Aut);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "45. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "46. Errore json ritornato.";
}
if (empty($data->credito))
{return "47. Utente non valido o credito pari a zero.";
}
$CreditoDisponibile = $data->credito;
Ora vuole ricercare le numerosità per i cap limitrofi disponibili per una campagna interattiva. I
cap limitrofi li conosce già, deve recuperare i parametri per le campagne interattive. Richiama
getProfilazioni.php
Pagina
40/47
$UrlApi = "http://api.mobspot.it/getProfilazioni.php?auth=".urlencode($Aut);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "48. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "49. Errore json ritornato.";
}
$Flag_ControlloPossoProfilarePerCampagnaInterattiva = 0;
$Id_Profilazioni_CampagnaInterattiva = -1;
$Valore_Profilazioni_CampagnaInterattiva = -1;
foreach ($data as $key_1 => $profilazioni)
{if ($profilazioni->name == "Tipo campagna")
{foreach ($profilazioni->values as $key_2 => $valori)
{if ($valori->value == "Interattiva")
{$Flag_ControlloPossoProfilarePerCampagnaInterattiva = 1;
$Id_Profilazioni_CampagnaInterattiva = $profilazioni->id_prof;
$Valore_Profilazioni_CampagnaInterattiva = $valori->id_value;
}
}
}
}
if (($Flag_ControlloPossoProfilarePerCampagnaInterattiva == 0) || ($Id_Profilazioni_CampagnaInterattiva == -1) ||
($Valore_Profilazioni_CampagnaInterattiva == -1))
{return "50. Errore profilazione Campagna Interattiva non disponibile.";
}
getNumerosita.php
interattive.
$Req = json_encode(array(array("id_prof"=>(string)$Id_Profilazioni_Cap, "values"=>$Array_Cap10Km),
array("id_prof"=>(string)$Id_Profilazioni_CampagnaInterattiva, "values"=>$Valore_Profilazioni_CampagnaInterattiva)));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getNumerosita.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "51. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "52. Errore json ritornato.";
}
Estrae i pacchetti disponibili e di seguito il pacchetto massimo che ha a disposizione.
Pagina
41/47
$Array_PacchettiInviabili = array();
foreach ($data as $key_1 => $numerosita)
{// totale
// id_tipocampagna
// pacchetti -> personalizzato
// pacchetti -> pacchetto
if ($numerosita->totale > 0)
{// Trovati $numerosita->totale contatti per campagna di tipo $numerosita->id_tipocampagna
// Controllo se la numerosita' e' sufficiente
$Array_PacchettiInviabili = $numerosita->pacchetti->pacchetto;
}
}
if (count($Array_PacchettiInviabili) < 1)
{return "19. Non ho pacchetti inviabili per questa campagna.";
}
$MassimaNumerositaInviabile = 0;
for ($i=0;$i<count($Array_PacchettiInviabili);$i++)
{$Req = json_encode(array("numerosita"=>$Array_PacchettiInviabili[$i],
"tipocampagna"=>$Valore_Profilazioni_CampagnaInterattiva));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getCostoCampagna.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "53. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "54. Errore json ritornato.";
}
if (!(isset($data->costo)))
{return "55. Utente non valido.";
}
$CostoQuestaCampagna = $data->costo;
if (($Array_PacchettiInviabili[$i] > $MassimaNumerositaInviabile) && ($CostoQuestaCampagna <= $CreditoDisponibile_Nuovo))
{$MassimaNumerositaInviabile = $Array_PacchettiInviabili[$i];
}
}
if ($MassimaNumerositaInviabile == 0)
{return "56. Nessun pacchetto inviabile.";
}
Accoda quindi una campagna per la profilazione scelta e la massima numerosità per lui
Pagina
42/47
$Req = json_encode(array("campagna"=>array(array("id_prof"=>(string)$Id_Profilazioni_Cap, "values"=>$Array_Cap10Km),
array("id_prof"=>(string)$Id_Profilazioni_CampagnaInterattiva, "values"=>$Valore_Profilazioni_CampagnaInterattiva)),
"datainvio"=>$PrimaDataDisponibile, "testo"=>"Accorrete numerosi al panificio Rossi Piazza della Vittoria 1. Se rispondi OK, ricevi un
omaggio.", "numerosita"=>$MassimaNumerositaInviabile, "parolachiave"=>"OK"));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/setCampagna.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "57. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "58. Errore json ritornato.";
}
if (!(isset($data->id)))
{return "59. Errore connessione.";
}
$IdQuestaCampagna = $data->id;
A questo punto, per estrarre le interazioni che arriveranno a seguito
Pagina
43/47
$NomeFileManlevaLocale = "FileManlevaTest.pdf";
$PuntatoreFile = fopen($NomeFileManlevaLocale, "r");
if (!$PuntatoreFile)
{return "60. Errore file.";
}
$RecuperoByteFile = fread($PuntatoreFile,filesize($NomeFileManlevaLocale));
fclose($PuntatoreFile);
$CodifcaBase64 = base64_encode($RecuperoByteFile);
$Req = json_encode(array("id_campagna"=>$IdQuestaCampagna,"file_manleva"=>$CodifcaBase64));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/setManleva.php";
$data_request=array();
if ($Aut != NULL)
{$data_request["auth"]=$Aut;
}
if ($Req != NULL)
{$data_request["request"]=$Req;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_request);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "61. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "62. Errore json ritornato.";
}
if (!(isset($data->esitocaricamento)))
{return "63. Errore caricamento file manleva.";
}
if ($data->esitocaricamento != "OK")
{return "64. Errore caricamento file manleva.";
}
Ora deve attendere che la manleva sia approvata dal sistema. Questo è un controllo che viene
getStatoManleva.php.
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getStatoManleva.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "65. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "66. Errore json ritornato.";
}
if ($data->statomanleva != "3")
{return "67. Errore accettazione manleva.";
}
Pagina
44/47
Ora che la manleva è stata accettata, no rimane altro da fare che attendere la data di invio della
campagna. E recuperare le interazioni corrette. Questa operazione si esegue combinando le API
getStatoManleva.php (vista in precedenza) e getInterazioni.php.
Pagina
if ($data->statomanleva->ok > 0)
{// Le estraggo
$Req = json_encode(array("id_campagna"=>$IdQuestaCampagna));
$Aut = json_encode(array("username"=>$Username, "verify_code"=>md5($Username.$Req.$Password)));
$UrlApi = "http://api.mobspot.it/getInterazioni.php?auth=".urlencode($Aut)."&request=".urlencode($Req);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $UrlApi);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if (curl_errno($ch))
{return "68. Errore connessione.";
}
curl_close($ch);
$data = json_decode($data);
if ($data === NULL)
{return "69. Errore json ritornato.";
}
if (count($data) < 1)
{return "70. Errore interazioni.";
}
else
{foreach ($data as $key_1 => $interazione)
{echo "Ricevuta interazione da ".($interazione->contatto)." (il ".($interazione->timestamp).")\n";
}
}
}
else
{echo "Ancora nessuna interazione ricevuta.\n";
}
45/47
TABELLA DEI CODICI DI ERRORE
Codice di errore
1000
1001
1002
1003-1
1003-2
1003-3
1003-4
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019-1
1019-2
1019-3
1020
1021
1022
1023
1024
1026
1027
1028
1029
1030
1036
1037
1038
1039
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
Descrizione
Errore generico
Proprietà di autenticazione assenti
Utente non riconosciuto o proprietà di autenticazione errate
Utente non riconosciuto o proprietà di autenticazione errate
Utente non riconosciuto o proprietà di autenticazione errate
Utente non riconosciuto o proprietà di autenticazione errate
Profilazione non valida
Valori di profilazione non formattati correttamente
Valori di profilazione non validi
Cap inesistente
Comune non valido: minimo 2 caratteri necessari
Campagna non trovata
Tipo di campagna mancante
Data di invio non valida
Numerosità scelta non valida
Caratteri nel testo non validi
Mittente mancante o non valido
Parola chiave mancante o non valida
Credito non sufficiente
Errore accodamento campagna
Errore accodamento campagna
Errore accodamento campagna
Impossibile caricare un file di manleva
Campagna non cancellabile
File di manleva troppo grande
Errore caricamento file
Valori di ricerca non validi
Costo non valido
Costo non trovato
Importo della ricarica non valido
Valore per il pacchetto non valido
Profilazione da escludere non trovata
Valore del permesso per il tipo di campagna non valido
Tipo di campagna non trovato o non accessibile
Permesso già assegnato
Id della comunicazione non valido
Testo impostato non valido.
Manleva non eliminabile
Manleva non trovata
Cliente non valido
Hashtag non valido
Note non valide
Pagina
46/47
1051
Nome campagna non valido
Pagina
47/47