Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

REST - Login primi passi

215 views
Skip to first unread message

Daniele

unread,
Jun 28, 2019, 5:49:11 AM6/28/19
to
Ciao a tutti,
sto muovendo i primi passi con i web service e i componenti REST di
delphi.
C'e' un sito per l'invio dei messaggi sms (skebby) che, una volta
autenticati, ritorna due chiavi di accesso.
Tramite browser non ci sono problemi per avere i due dati utilizzando come
stringa di collegamento la stringa

https://api.skebby.it/API/v1.0/REST/login=USER_NAME&password=PASSWORD'

ed effettivamente, con le corrette credenziali, ritorna i due valori
(userkey e sessionkey).

Per avere un qualcosa di piu' flessibile sto cercando di portare il tutto in
form dove sono presenti
2 edtit per username e password
1 TRESTClient
1 TRESTRequest
1 TRESTResponse
1 THTTPBasicAuthenticator
1 bottone

tutti opportunamente linkati.

nell'evento onclick del bottone ho

THTTPBasicAuthenticator.username:=edt1.text
THTTPBasicAuthenticator.password:=edt2.text
TRESTClient.BaseHurl:=https://api.skebby.it/API/v1.0/REST/';
TRESTRequest.Exceute.

Mi ritorna sempre l'errore

Response 400 - bad request

Evidentemente sbaglio qualcosa ...
Mi potete dire dove sto sbagliando ?

Grazie

Ciao
Daniele




David Lastrucci

unread,
Jun 28, 2019, 9:39:05 AM6/28/19
to
Ciao Daniele,

> THTTPBasicAuthenticator.username:=edt1.text
> THTTPBasicAuthenticator.password:=edt2.text
> TRESTClient.BaseHurl:=https://api.skebby.it/API/v1.0/REST/';
> TRESTRequest.Exceute.
>
> Mi ritorna sempre l'errore
>
> Response 400 - bad request
>
> Evidentemente sbaglio qualcosa ...
>
> Mi potete dire dove sto sbagliando ?
>

Prima di tutto sbagli ad utilizzare THTTPBasicAuthenticator. Quando dovresti
semplicemente inviare una GET all'indirizzo https://api.skebby.it/API/v1.0/REST/login=USER_NAME&password=PASSWORD

Basic Authentication è un'altra cosa:

https://it.wikipedia.org/wiki/Basic_access_authentication

In seconda battuta io utilizzerei TNetHTTPClient e non TRESTClient...

HTH,
David


Daniele

unread,
Jul 4, 2019, 3:34:37 AM7/4/19
to
Ciao David,

[]
Prima di tutto sbagli ad utilizzare THTTPBasicAuthenticator. Quando dovresti
semplicemente inviare una GET all'indirizzo
https://api.skebby.it/API/v1.0/REST/login=USER_NAME&password=PASSWORD

Basic Authentication è un'altra cosa:

https://it.wikipedia.org/wiki/Basic_access_authentication

In seconda battuta io utilizzerei TNetHTTPClient e non TRESTClient...
[]

seguendo il tuo consiglio ho provato ad usare TNetHTTPClient ma non riesco a
fare progressi.
Probabilmente sto sbagliando qualcosa a livello di settaggi.

Ecco il codice che sto usando nell'evento onclick del bottone dove
mmo1:TMemo
Params : TStringList

begin
mmo1.Lines.Clear;
LHTTP := TNetHTTPClient.Create(nil);
try
Params := TStringList.Create;
try
Params.Add('login=' + Edt1.text);
Params.Add('password=' + Edt2.text); // ma anche con '&password' non
cambia nulla
Mmo1.Lines.Text := LHTTP.Post('https://api.skebby.it/API/v1.0/REST/',
Params).ContentAsString;
finally
Params.Free;
end;
finally
LHTTP.Free;
end;

mi ritorna sempre questo errore

<RestError><error_type>UnknownErrorException</error_type><code>400</code><error_message>Unknown
error</error_message></RestError>

Qualche suggerimento e/o esempio su come settare il componente? (per esempio
dove imposto il get ?)

Grazie

Ciao

Daniele



David Lastrucci

unread,
Jul 5, 2019, 1:38:04 AM7/5/19
to
Ciao Daniele,

> LHTTP := TNetHTTPClient.Create(nil);
> try
> Params := TStringList.Create;
> try
> Params.Add('login=' + Edt1.text);
> Params.Add('password=' + Edt2.text); // ma anche con '&password' non
> cambia nulla
> Mmo1.Lines.Text := LHTTP.Post('https://api.skebby.it/API/v1.0/REST/',
> Params).ContentAsString;
> finally
> Params.Free;
> end;
> finally
> LHTTP.Free;
> end;

La stringa deve essere unica, non divisa in due parti:

https://api.skebby.it/API/v1.0/REST/login=USER_NAME&password=PASSWORD

Params non ti serve!

In pratica così:

LCommand := 'https://api.skebby.it/API/v1.0/REST/login=' + Edit1.Text + '&password='
+ Edit2.Text;
Memo1.Lines.Text := LHTTP.Post(LCommand).ContentAsString;

Controlla se il comando corretto è POST oppure GET, questo non lo ho verificato.

HTH
David


Daniele

unread,
Jul 6, 2019, 3:46:37 AM7/6/19
to
Ciao David,
dopo diversi tentativi sono riuscito nell'intento di effettuare il login
!!!
Sono riusciuto con TRESTClient, mentre con TNetHTTPClient mi ritorna ancora
bad request.
Per motivi di (in)comprensione sto continuando a testare con TNetHTTPClient
... ma ad ora ... nessun progresso !!

Ti aggiorno sui progressi ...

Ciao

Daniele


Arca Tecsal

unread,
Nov 24, 2021, 10:17:20 AM11/24/21
to
Salve Daniele,
sto anch'io facendo i primi passi con il componente TRest e skeppy... con infinite difficoltà, perchè non trovo nessun esempio.
Alla fine, tu sei riuscito a completare la connessione ed a utilizzare il servizio ?
Potresti condividere il codice funzionante ?

Grazie. Eros DV

Daniele

unread,
Nov 25, 2021, 7:05:02 AM11/25/21
to
Ciao,

Il 24/11/2021 16:17, Arca Tecsal ha scritto:
> Salve Daniele,
> sto anch'io facendo i primi passi con il componente TRest e skeppy... con infinite difficoltà, perchè non trovo nessun esempio.
> Alla fine, tu sei riuscito a completare la connessione ed a utilizzare il servizio ?
> Potresti condividere il codice funzionante ?

Discussione vecchia ... ma ancora viva....
Ho risolto il problema dell'invio di sms a skebby me nel frattempo sono
successe un po di cose.
La prima sorpresa, amara, e' che una volta acquistati gli sms questi
hanno una scadenza di 24 mesi dalla data di acquisto.
Cio' significa che se compri 300 sms e in 2 anni nel utilizzi 50, gli
altri 250 vengono resettati e li perdi (quello che mi e' capitato).
Inoltre hanno cambiato le regole del gate sms, prima mandavi a un http,
ora utilizzano un https; fino a quando mandavo messaggi era, tuttavia,
possibile utilizzare ancora http.
Hanno aggiornato gli esempi in C, C++ e altri linguaggi eccetto che per
pascal/delhpi e su mi richiesta di averne una per pascal mi hanno
risposto che i loro programmatori non sanno il pascal e di provvere a
convertirle e poi condividere il codice (poco professionale dato che
loro vendono il servizio).
Tuttavia rimane in vita la vecchia libreria per mandare gli sms via http
che puoi trovare qui con un paio di esempi.

http://static.skebby.it/s/apps/gateway/send/skebby-gw-radstudio-delphi-example.zip

Dato che sono un "hobbista" di pascal / delphi qui

https://developers.skebby.it/?_ga=2.144006647.315217604.1637841610-2097736936.1637841610&_gac=1.223795817.1637841610.Cj0KCQiAhf2MBhDNARIsAKXU5GSsDqNT1T2MBkj-Socw3zmtZrpuC4_NYJdgqO2KhCBHOTzP2CZxLJkaAnENEALw_wcB#skebby-rest-api-introduction

ci sono le api per poter estrarre una unit delphi ed avere una libreria
attuale.
Se ce la fai ....

Grazie per l'eventuale aiuto e alla prossima

Ciao

Daniele

0 new messages