OAuth2 to powszechna metoda autoryzacji stosowana przez wiele firm, takich jak Google. Gdy chcemy uwierzytelnić się na serwerach Google w celu korzystania z ich API, zazwyczaj wymagane jest uwierzytelnianie przy użyciu OAuth2.
sgcWebSockets obsługuje OAuth2 w kliencie HTTP/2. Dostępna jest właściwość o nazwie Authentication.Token.OAuth, do której należy przypisać instancję TsgcHTTP_OAuth2.
Aby nawiązać połączenie z API Google, należy utworzyć instancję TsgcHTTP_OAuth2 i wypełnić następujące dane:
TsgcHTTP_OAuth1.AuthorizationServerOptions.AuthURL := 'https://accounts.google.com/o/oauth2/auth';
TsgcHTTP_OAuth1.AuthorizationServerOptions.TokenURL := 'https://accounts.google.com/o/oauth2/token';
TsgcHTTP_OAuth1.LocalServerOptions.IP := '127.0.0.1';
TsgcHTTP_OAuth1.LocalServerOptions.Port := 8080;
TsgcHTTP_OAuth1.OAuth2Options.ClientId := 'your client id';
TsgcHTTP_OAuth1.OAuth2Options.ClientSecret := 'your client secret';
Po wypełnieniu komponentu klienta OAuth2 należy utworzyć nową instancję TsgcHTTP2Client i przypisać komponent OAuth2 do klienta HTTP/2.
TsgcHTTP2Client1.Authentication.Token.OAuth := TsgcHTTP_OAuth1;
Na koniec wysyłane jest żądanie pobrania listy wiadomości z konta yourname@gmail.com.
oStream := TStringStream.Create('');
Try
TsgcHTTP2Client1.Get('https://gmail.googleapis.com/gmail/v1/users/yourname@gmail.com/messages', oStream);
ShowMessage(oStream.DataString);
Finally
oStream.Free;
End;