Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure Tfrm_Main.btn_GoogleTasks_FetchAuthTokenClick(Sender: TObject);
- var
- LURL: string;
- wv: Tfrm_OAuthWebForm;
- LToken: string;
- begin
- edt_GoogleTasks_AuthCode.Text := '';
- edt_GoogleTasks_AccessToken.Text := '';
- edt_GoogleTasks_RefreshToken.Text := '';
- /// step #1: get the auth-code
- LURL := 'https://accounts.google.com/o/oauth2/auth';
- LURL := LURL + '?response_type=' + URIEncode('code');
- LURL := LURL + '&client_id=' + URIEncode(edt_GoogleTasks_ClientID.Text);
- LURL := LURL + '&redirect_uri=' + URIEncode('urn:ietf:wg:oauth:2.0:oob');
- LURL := LURL + '&scope=' + URIEncode('https://www.googleapis.com/auth/tasks');
- // optional
- // LURL := LURL + '&login_hint=' + URIEncode('[email protected]');
- wv := Tfrm_OAuthWebForm.Create(self);
- try
- wv.OnTitleChanged := self.OAuth2_GoogleTasks_BrowserTitleChanged;
- wv.ShowModalWithURL(LURL);
- finally
- wv.Release;
- end;
- /// step #2: get the access-token
- ResetRESTComponentsToDefaults;
- RESTClient.BaseURL := 'https://accounts.google.com/';
- RESTRequest.Method := TRESTRequestMethod.rmPOST;
- RESTRequest.Resource := 'o/oauth2/token';
- RESTRequest.Params.AddItem('code', edt_GoogleTasks_AuthCode.Text, TRESTRequestParameterKind.pkGETorPOST);
- RESTRequest.Params.AddItem('client_id', edt_GoogleTasks_ClientID.Text, TRESTRequestParameterKind.pkGETorPOST);
- RESTRequest.Params.AddItem('client_secret', edt_GoogleTasks_ClientSecret.Text, TRESTRequestParameterKind.pkGETorPOST);
- RESTRequest.Params.AddItem('redirect_uri', 'urn:ietf:wg:oauth:2.0:oob', TRESTRequestParameterKind.pkGETorPOST);
- RESTRequest.Params.AddItem('grant_type', 'authorization_code', TRESTRequestParameterKind.pkGETorPOST);
- RESTRequest.Execute;
- if RESTRequest.Response.GetSimpleValue('access_token', LToken) then
- // edt_GoogleTasks_AccessToken.Text := LToken;
- OAuth2_GoogleTasks.AccessToken := LToken;
- if RESTRequest.Response.GetSimpleValue('refresh_token', LToken) then
- // edt_GoogleTasks_RefreshToken.Text := LToken;
- OAuth2_GoogleTasks.RefreshToken := LToken;
- end;
Add Comment
Please, Sign In to add comment