GoJack - SMS gratis

  • Dicembre 08, 2024, 04:10:16 pm
  • Benvenuto, Visitatore
Effettua l'accesso o una nuova registrazione.

Inserisci il nome utente, la password e la durata della sessione.
Ricerca avanzata  

Autore Topic: [Guida] Creare un servizio xml  (Letto 68130 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

tutore91

  • Global Moderator
  • User quarto livello
  • *****
  • Karma: +22/-0
  • Offline Offline
  • Post: 345
  • Sarà leggen... adesso arriva... dario!
    • Mostra profilo
    • Belli e basta.
[Guida] Creare un servizio xml
« il: Febbraio 01, 2012, 03:54:10 pm »

Quali programmi sono necessari:

Sniffer per analizzare le pagine:
Httpfox (estensione per firefox)

Editor di testo:
Notepad++

Cos'è un xml? Wikipedia

Svolgimento:
Per iniziare prendiamo un servizio semplice da analizzare, ad esempio SmsBG

Questo è il service già completo
Codice: [Seleziona]
    <service id="42" service_type="free" name="SmsBG" v="1.0" maxsms="10" singlelen="160" sms_divisor="160" maxlen="160" reset="daily" output_encoding="UTF-8" icon="iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABMklEQVR4nMWToW7DMBRFTyqDBwoCBgIG+gmBBQMmkyKVFAz0swqqgX2BQYBBh0YKCqopGijqBwwEFAQ+YM0DmbNWG+kKZsl6wPfe9+61ncUYuWaNrmIDBuD55flPY8zuZ1m2fd1GAkxuJxe1PRwOyFgwIsJut2M6nV7U3a899s4yIkBZlnjvzwCq+msFcLWjLEs0aB9inudYa3G1G0Aigqqe1USuqoo8zyGkWwi9SFVVP0RO60Ae92QNykjD92hiBDGCX5/bSZ4T5hRvxAgYaI8tm82GxcOCrutwtaO4KYD+LHV2tcNa+/UAIGvemqhBad9b5vP5oN4eW7quI2WUxAC89xRF0Vtr9k1cPa5i+AgX7dXTKjb7JpoU0HK5HMIa0g86eD69CVUF04eb/ftnulrgE5AOtl9/G9KxAAAAAElFTkSuQmCC">
        <description>
            <info>Invia SMS verso numeri di cellulare bulgari Mtel.</info>
            <config>
                <required n="1" name="usr" default="" desc="inserisci qualsiasi cosa" />
            </config>
        </description>
        <procedure>
            <page method="POST" uri="http://smsbg.net/sms.php">
                <vars>
                    <var name="MN1" value="359" />
                    <var name="MN2" value="%%pref%%" />
                    <var name="MN3" value="%%num%%" />
                    <var name="ID" value="1" />
                    <var name="FROM" value="" />
                    <var name="SM" value="%%message%%" />
                    <var name="num" value="142" />
                    <var name="sbm" value="Ã?çïðà ùà íå" />
                </vars>
                <accept>
                    <var acceptstr=".: smsbg.net :. send free SMS" />
                </accept>
            </page>
        </procedure>
    </service>

Iniziamo analizzando la prima riga

Codice: [Seleziona]
<service id="42" service_type="free" name="SmsBG" v="1.0" maxsms="10" singlelen="160" sms_divisor="160" maxlen="160" reset="daily" output_encoding="UTF-8" icon="iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABMklEQVR4nMWToW7DMBRFTyqDBwoCBgIG+gmBBQMmkyKVFAz0swqqgX2BQYBBh0YKCqopGijqBwwEFAQ+YM0DmbNWG+kKZsl6wPfe9+61ncUYuWaNrmIDBuD55flPY8zuZ1m2fd1GAkxuJxe1PRwOyFgwIsJut2M6nV7U3a899s4yIkBZlnjvzwCq+msFcLWjLEs0aB9inudYa3G1G0Aigqqe1USuqoo8zyGkWwi9SFVVP0RO60Ae92QNykjD92hiBDGCX5/bSZ4T5hRvxAgYaI8tm82GxcOCrutwtaO4KYD+LHV2tcNa+/UAIGvemqhBad9b5vP5oN4eW7quI2WUxAC89xRF0Vtr9k1cPa5i+AgX7dXTKjb7JpoU0HK5HMIa0g86eD69CVUF04eb/ftnulrgE5AOtl9/G9KxAAAAAElFTkSuQmCC">
I campi più importanti:

service id = Il valore dopo service id serve per identificare il numero del servizio, può essere uno qualsiasi, l'importante è che non ci siano 2 servizi con lo stesso numero nel file xml.

name = è il nome che si vuole dare al servizio, in questo caso SmsBG.

v = versione del servizio.

singlelen = lunghezza massima di un singolo messaggio, questo valore va cambiato a seconda di quanti caratteri si possono inviare tramite il servizio, in questo caso il sito SmsBG permette di inviare sms con 160 caratteri.

sms_divisor = nel caso di servizi che consentono l'invio di più di 160 caratteri bisogna indicare ogni quanti caratteri il messaggio viene spezzettato alla ricezione, non è il caso di smsbg, ma ad esempio nel service di o2 che ha un limite di 1000 caratteri il messaggio viene spezzettato ogni 152 caratteri se supera la lunghezza totale di 160.

maxlen = lunghezza massima del messaggio, questo parametro va cambiato a seconda di quanti caratteri si possono inviare tramite il sito scelto per l'invio.

output_encoding = questo parametro può essere configurato a seconda della codifica utilizzata dal sito scelto per l'invio degli sms.

icon = può anche essere lasciato vuoto, è l'icona del servizio.

Secondo passo, descrizione del servizio

Codice: [Seleziona]
        <description>
            <info>Invia SMS verso numeri di cellulare bulgari Mtel.</info>
            <config>
                <required n="1" name="usr" default="" desc="inserisci qualsiasi cosa" />
            </config>
        </description>

Campo info

Codice: [Seleziona]
<info>Invia SMS verso numeri di cellulare bulgari Mtel.</info>
tra <info> ed </info> bisogna inserire una breve descrizione del servizio

Tag config

Codice: [Seleziona]
            <config>
                <required n="1" name="usr" default="" desc="inserisci qualsiasi cosa" />
            </config>

In questo caso il servizio è senza registrazione, quindi andremo ad inserire questo campo anche se superfluo. Il caso di un servizio con registrazione lo tratteremo più avanti.

required = significa che quel campo è necessario da compilare ai fini dell'invio, almeno un campo deve essere required, in alternativa si può inserire "optional" se quel campo non è necessario
n = è il numero del campo
nome = è il nome della variabile che si vuole assegnare a quel campo, vedremo più avanti a cosa serve
desc = lì bisogna inserire la descrizione del campo

Terza parte, procedura di invio, la parte più importante:

Codice: [Seleziona]
        <procedure>
            <page method="POST" uri="http://smsbg.net/sms.php">
                <vars>
                    <var name="MN1" value="359" />
                    <var name="MN2" value="%%pref%%" />
                    <var name="MN3" value="%%num%%" />
                    <var name="ID" value="1" />
                    <var name="FROM" value="" />
                    <var name="SM" value="%%message%%" />
                    <var name="num" value="142" />
                    <var name="sbm" value="Ã?çïðà ùà íå" />
                </vars>
                <accept>
                    <var acceptstr=".: smsbg.net :. send free SMS" />
                </accept>
            </page>
        </procedure>

per poter compilare questa parte c'è bisogno di utilizzare lo sniffer.

1) Per chi è alle prime armi consiglio di chiudere tutte le schede aperte e lasciare solamente il sito web che si intende analizzare aperto in modo da non confodersi

2)Recarsi sul sito web che permette l'invio, in questo esempio www.smsbg.net

3)Aprire lo sniffer ed avviarlo

4)Compilare i campi ed effettuare un invio, in questo caso li compiliamo così



5)Dopo aver cliccato su invia attendere il caricamento della pagina successiva e poi stoppare lo sniffer. Si presenterà una situazione di questo tipo:



A)Cercare i POST in quanto sono quelli che ci interessano perchè sono le azioni dove vengono inviati dei dati alla pagina

B)Copiare l'url di quel post, in quel caso è http://smsbg.net/sms.php e compilare la riga di conseguenza:

Codice: [Seleziona]
<page method="POST" uri="http://smsbg.net/sms.php">
C)Cliccare su POST Data, lì ci saranno le nostre variabili

D)Tra i due <vars> vanno inserite le variabili, ad esempio

Codice: [Seleziona]
<var name="MN1" value="359" />
var name = indica il nome della variabile che è scritto nella colonna Parameter ed è sempre dato dal sito

value = indica il valore scritto nella casella value, in questo caso può essere sia fisso che variabile, ad esempio 359 era fisso già dato dal sito, mentre ad esempio potrebbe verificarsi:

Codice: [Seleziona]
<var name="MN2" value="%%pref%%" />
In questo caso sotto MN2 ci compare 444 perchè è un dato che abbiamo inserito noi, e sta a significare il prefiso ad esempio 328 - 338 - 347 - 392 ecc. Pertanto bisognerà compilare il campo con delle variabili prestabilite da utilizzare a seconda di cosa viene inserito:

Si utilizzano:

%%intpref%% = per il prefisso internazionale (incluso il +)
%%intcode%% =per il prefisso internazionale (escluso il +)
%%pref%% = per il prefisso (328 - 338 - 347 - 392 ecc)
%%num%% = per il numero senza prefisso
%%intnum%% = per il numero compreso il prefisso (ma senza il prefisso internazionale)
%%message%% = per il testo del messaggio

Tutte le variabili devono essere prese in considerazione, ma non è detto che tutte siano indispensabili per l'invio, l'importante è inserirle e nel caso di variabili non indispensabili si può anche attribuire loro un valore casuale.

Conferma di invio del messaggio, accept string

Codice: [Seleziona]
                <accept>
                    <var acceptstr=".: smsbg.net :. send free SMS" />
                </accept>

Dopo var acceptstr va inserita una parte di testo che compare nella pagina successiva all'invio che ci possa far capire che l'sms è stato correttamente inviato, in questo caso ne abbiamo una conferma certa in quanto non compare scritto da nessuna parte qualcosa come "Sms inviato" o simili, dunque quando si invia non ci resta che sperare che tutto sia andato per il meglio. In quasi tutti i servizi comunque c'è una pagina che conferma il corretto invio del messaggio.

Nel caso si volesse invece resituire un messaggio di errore qualora l'sms non venga correttamente inviato si può aggiungere sotto </accept> e prima di </page> il tag <errors>, ad esempio

Codice: [Seleziona]
                <errors>
                    <var errstr="Problem sending message" errmsg="Errore nell&apos;invio" />
                    <var errstr="Service is currently unavailable" errmsg="Il servizio non e&apos; al momento disponibile" />
                    <var errstr="maintenance" errmsg="Il sito e&apos; in manutenzione,riprova piu&apos; tardi" />
                </errors>

Dopo var errstr bisogna indicare il testo contenuto nella pagina caricata dopo l'invio che ci permette di capire che l'invio è fallito, in errmsg si scrive l'errore che si vuole venga restituito nel caso in cui venga trovato quel testo nella pagina.

Si andranno poi a chiudere i tag rimanenti e il servizio sarà così completato!

In caso di servizio che preveda il login basta aggiungere qualche semplice variabile. Nella parte config dobbiamo inserire la possibilità di configurare nome utente e password in questo modo:

Codice: [Seleziona]
            <config>
                <required n="1" name="user" default="" desc="inserisci la username" />
                <required n="2" name="password" default="" desc="inserisci la password" />
            </config>

"user" e "password" le utilizzeremo poi come variabili andando ad inserirle prima della pagina di invio così con due %% all'inizio e alla fine della variabile:

Codice: [Seleziona]
            <page method="POST" uri="url della pagina di login">
                <vars>
                    <var name="USERNAME" value="%%user%%" />
                    <var name="PASSWORD" value="%%password%%" />
               </vars>
            </page>

Nel caso di un service con il captcha bisogna inserire questo pezzo nel service in modo da far visualizzare il captcha all'applicazione:

Codice: [Seleziona]
<page uri="http://www.nome_sito.it/percorso/captcha.jpg" captcha="1"/>
e bisogna utilizzare come variabile per il captcha "%%captcha_value%%"

Nel caso in cui una variabile dovesse essere dinamica, ovvero cambiare ad ogni invio, l'indirizzo del captcha dovesse ogni volta diverso ecc. bisogna far ricorso ai content.

I content servono a prelevare una parte di testo variabile che si trova tra 2 parti di testo sempre fisse.

Codice: [Seleziona]
<contents>
          <var name="__VIEWSTATE2" left="input type=&quot;hidden&quot; name=&quot;__VIEWSTATE&quot; id=&quot;__VIEWSTATE&quot; value=&quot;" right="&quot;"/>
        </contents>

In questo caso la variabile VIEWSTATE2 ha un valore che cambia sempre e in quanto necessaria per l'invio bisogna recuperare il suo valore. Per farlo bisogna inserire analizzando la sorgente della pagina web una porzione di testo che è scritta prima della variabile nel campo left, mentre nel campo right bisogna inserire una stringa scritta dopo la parte di testo che ci interessa recuperare.

Ad esempio mettiamo ci interessi recuperare il valore degli sms residui dopo un invio. Sul sito viene scritto così:
Sms ancora disponibili:200:

Per recuperare il 200 che è il numero che cambia dopo ogni invio in left andrà scritto "disponibili:" e in right ":"

Questa guida è solo una base, man mano se vi cimenterete troverete cose magari semplici come sono scritte qua oppure più complesse, con questa guida spero di aiutarvi a capire come può essere scritto un service xml e da dove partire. Poi con la pratica diventerete sicuramente più esperti ;)
« Ultima modifica: Giugno 03, 2012, 05:59:47 am da Daniele8787 »
Connesso

dongongo

  • Android Beta-Tester
  • User quarto livello
  • **
  • Karma: +7/-0
  • Offline Offline
  • Post: 258
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #1 il: Febbraio 01, 2012, 04:25:44 pm »

Gran bel lavoro tutor! ;)
Ti meriti tanti +1 virtuali immaginari. ;D
Connesso

Tutti gli sms che vuoi da web grazie a SMSbyDALLY

Zummy

  • User terzo livello
  • ***
  • Karma: +2/-0
  • Offline Offline
  • Post: 137
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #2 il: Febbraio 01, 2012, 04:55:13 pm »

Dobbiamo fidarci di Tutore, o meglio sentir l'avvocato (Anche se qui non pare esserci) ? :P
Connesso
Firmare? E che firmo... Ci penso :D

Tardao

  • User terzo livello
  • ***
  • Karma: +2/-0
  • Offline Offline
  • Post: 141
    • Mostra profilo
R: [Guida] Creare un servizio xml
« Risposta #3 il: Febbraio 01, 2012, 05:52:57 pm »

Ottima guida! ^^ una volta finiti gli esami mi ci metto e cerco di capire come Azz funziona per bene :-D
Connesso

tutore91

  • Global Moderator
  • User quarto livello
  • *****
  • Karma: +22/-0
  • Offline Offline
  • Post: 345
  • Sarà leggen... adesso arriva... dario!
    • Mostra profilo
    • Belli e basta.
Re:[Guida] Creare un servizio xml
« Risposta #4 il: Febbraio 01, 2012, 06:23:10 pm »

Gran bel lavoro tutor! ;)
Ti meriti tanti +1 virtuali immaginari. ;D
grazie, ora vedi di cimentarti ;D

Dobbiamo fidarci di Tutore, o meglio sentir l'avvocato (Anche se qui non pare esserci) ? :P
prova e vedrai che puoi fidarti :)

Ottima guida! ^^ una volta finiti gli esami mi ci metto e cerco di capire come Azz funziona per bene :-D
spero sia di semplice comprensione ;)
Connesso

Tardao

  • User terzo livello
  • ***
  • Karma: +2/-0
  • Offline Offline
  • Post: 141
    • Mostra profilo
R: [Guida] Creare un servizio xml
« Risposta #5 il: Febbraio 01, 2012, 06:52:01 pm »

Leggendo al volo mi è sembrato di aver capito tutto, ma per esperienza so che quando mi cimento in qualsivoglia impresa tecnologica mi si presenta sempre qualche problema inaspettato, quindi preferisco prima agire e poi trarre le dovute considerazioni xD
Connesso

drjis

  • GoJack tester
  • User quarto livello
  • *****
  • Karma: +15/-0
  • Offline Offline
  • Post: 485
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #6 il: Febbraio 01, 2012, 07:06:16 pm »

grazie spero di riuscirci sta volta
Connesso

domi

  • Global Moderator
  • User quarto livello
  • *****
  • Karma: +12/-0
  • Offline Offline
  • Post: 252
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #7 il: Febbraio 01, 2012, 07:38:36 pm »

grazie per la guida, è davvero ben fatta :)
Connesso
se usate x10hosting ricordatevi di loggare sul loro forum almeno una volta al mese per non farvi chiudere l'account

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #8 il: Febbraio 01, 2012, 10:03:54 pm »

Che gran bella guida. :) mi fa piacere che hai voluto impegnarti tanto per gojack mentre mi pare che per jacksms non avevi fatto guide. Grazie ancora. :)
Connesso

tutore91

  • Global Moderator
  • User quarto livello
  • *****
  • Karma: +22/-0
  • Offline Offline
  • Post: 345
  • Sarà leggen... adesso arriva... dario!
    • Mostra profilo
    • Belli e basta.
Re:[Guida] Creare un servizio xml
« Risposta #9 il: Febbraio 02, 2012, 10:46:37 am »

Che gran bella guida. :) mi fa piacere che hai voluto impegnarti tanto per gojack mentre mi pare che per jacksms non avevi fatto guide. Grazie ancora. :)
su jack avevo fatto qualche guida ma poche, avevo lavorato più sul beta test della symbian ;) sono contento che ti sia piaciuta e spero così di tirare fuori il coder che è in ognuno di noi ;D
Connesso

drjis

  • GoJack tester
  • User quarto livello
  • *****
  • Karma: +15/-0
  • Offline Offline
  • Post: 485
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #10 il: Aprile 16, 2012, 09:25:13 pm »

output_encoding="UTF-8" solo con questa combinazione funzionano le lettere accentate? non c'è qualche altro trucchetto?
Connesso

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #11 il: Aprile 16, 2012, 09:40:46 pm »

No dipende dal sito del servizio..ci sono servizi che accettano solo utf-8 per le accentate ed altri che accettano solo codifiche senza utf-8. Altri ancora non accettano proprio le accentate e quindi bisogna sostituirle con codifica ACCENT.
Connesso

drjis

  • GoJack tester
  • User quarto livello
  • *****
  • Karma: +15/-0
  • Offline Offline
  • Post: 485
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #12 il: Aprile 17, 2012, 09:35:33 pm »

con la codifica ACCENT le accentate equivalgono a 2 caratteri giusto?
Connesso

Daniele8787

  • Sviluppatore GoJack
  • Administrator
  • Senior
  • *****
  • Karma: +95/-0
  • Offline Offline
  • Post: 1878
  • L'unica vera libertà, corrisponde al non aver bisogno di NULLA.
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #13 il: Aprile 17, 2012, 10:31:17 pm »

No vengono sostituite dalle vocali semplici corrispondenti.
Connesso

drjis

  • GoJack tester
  • User quarto livello
  • *****
  • Karma: +15/-0
  • Offline Offline
  • Post: 485
    • Mostra profilo
Re:[Guida] Creare un servizio xml
« Risposta #14 il: Aprile 17, 2012, 10:38:39 pm »

avevo letto in una guida che la codifica ACCENT fa corrispondere ad es. è in e' per questo corrisponde a 2 caratteri
Connesso
 

Contatta Daniele8787 l'autore di GoJack


Se vuoi ringraziare me (Daniele8787) e ciopper90, per il lavoro svolto fin'ora,
puoi prendere in considerazione una libera donazione. Grazie mille.