Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   OAuth2 Refreshtoken (https://www.delphipraxis.net/191460-oauth2-refreshtoken.html)

mlc42 18. Jan 2017 21:54

OAuth2 Refreshtoken
 
Hallo

ich versuche mittels Delphi XE8 und den Rest bzw Outh2 Komponenten auf die Google API zuzugreifen.
Die Authentifizierung zeigt auch das Browserfenster an und ich kann mit der API arbeiten.
Nur irgenwann läuft die Anmeldung ab. Ich habe gelesen, das man dann mit dem Refreshtoken ein neues Accesstoken
anfordern kann. Leider finde ich in der XE8 Hilfe oder den Beispielen nicht wie man das macht.

Hat jemand einen Tip ?

Martin

BrightAngel 18. Jan 2017 22:09

AW: OAuth2 Refreshtoken
 
Ich bin kein Fachmann für die Delphikomponenten dazu, aber kennst du diese StackOverflow Seite?
klick!

Hoffe, du kommst weiter! :)

Brighty

mlc42 19. Jan 2017 20:35

AW: OAuth2 Refreshtoken
 
Danke für den Tip

ich habe in anderen Sprachen einiges gefunden. Aber ich gebe die Hoffnung nicht auf
das auch in Delphi machen zu können. Vermutlich sind das nur Kleinigkeiten die man
wissen muss. Die XE Hilfe und die Demos geben da leider nichts her. Ich werd mal XE10
installieren vielleicht ist ja da was dabei.

Martin

mlc42 20. Jan 2017 20:30

AW: OAuth2 Refreshtoken
 
Falls nochmal jemand drüber stolpert, hier mal die Lösung



ResetRESTComponentsToDefaults;
RESTClient.BaseURL := 'https://www.googleapis.com/';
RESTRequest.Method := TRESTRequestMethod.rmPOST;
RESTRequest.Resource := 'oauth2/v4/token';
RESTRequest.Params.AddItem('client_id',ClientID, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest.Params.AddItem('client_secret',ClientS ecret, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest.Params.AddItem('refresh_token', ref, TRESTRequestParameterKind.pkGETorPOST);
RESTRequest.Params.AddItem('grant_type', 'refresh_token', TRESTRequestParameterKind.pkGETorPOST);

RESTRequest.Execute;

if RESTRequest.Response.GetSimpleValue('access_token' , LToken) then
OAuth2_GoogleTasks.AccessToken := LToken;


In der Google API Beschreibung kann man sich neben den python, js und anderen Beispielen auf den REST Code anschauen. Da war es dann einfach.

Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz