Delphi DLL
Delphi DLL
Google OAuth2 v3 userinfo (https://www.googleapis.com/oauth2/v3/userinfo)
See more Google APIs Examples
Demonstrates how to get the Google OAuth2 v3 userinfo.Important: Make sure the OAuth2 access token included "profile" in the list of scopes.
Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder, JsonObject;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
jsonToken: HCkJsonObject;
http: HCkHttp;
sbResponseBody: HCkStringBuilder;
json: HCkJsonObject;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// It is assumed we previously obtained an OAuth2 access token.
// This example loads the JSON access token file
// originally obtained by this example: Get Google People API OAuth2 Access Token
// or refreshed by this example: Refresh Google People API OAuth2 Access Token
jsonToken := CkJsonObject_Create();
success := CkJsonObject_LoadFile(jsonToken,'qa_data/tokens/googlePeople.json');
if (success <> True) then
begin
Memo1.Lines.Add('Failed to load googleContacts.json');
Exit;
end;
http := CkHttp_Create();
// -------------------------------------------------------------------------------------
// Make sure the access token was obtained with "profile" included in the list of scopes.
// -------------------------------------------------------------------------------------
CkHttp_putAuthToken(http,CkJsonObject__stringOf(jsonToken,'access_token'));
sbResponseBody := CkStringBuilder_Create();
success := CkHttp_QuickGetSb(http,'https://www.googleapis.com/oauth2/v3/userinfo',sbResponseBody);
if (success = False) then
begin
Memo1.Lines.Add(CkHttp__lastErrorText(http));
Memo1.Lines.Add(CkStringBuilder__getAsString(sbResponseBody));
Exit;
end;
// Sample JSON Response
json := CkJsonObject_Create();
CkJsonObject_putEmitCompact(json,False);
CkJsonObject_Load(json,CkStringBuilder__getAsString(sbResponseBody));
Memo1.Lines.Add(CkJsonObject__emit(json));
// Sample response:
// {
// "sub": "119999690625687999964",
// "name": "Matt",
// "given_name": "Matt",
// "picture": "https://lh3.googleusercontent.com/-b4...eg3Zjo/AAAAAAAAAAI/AAAAAAAAAAA/AMZuu....3RpdA/s96-c/photo.jpg",
// "locale": "en"
// }
//
CkJsonObject_Dispose(jsonToken);
CkHttp_Dispose(http);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(json);
end;