PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
This content has been translated automatically. Click here to view the French version.
  • Possible error cases:
  • Prerequisites for OAuth 2.0 authentication
  • OAuth 2.0 authentication
  • Persistence of connection
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Allows to authenticate to a Google server (via "OAuth 2.0" authentication mode). This function is automatically run when running a Gglxxx function.
Remarks:
  • We recommend that you use <gglConnection variable>.Connect (syntax 2) to group the authorizations requests made by Google.
  • The disconnection is automatically performed when closing the application.
  • Versions 20 and later
    WEBDEV - Server code If your project uses pre-launched sessions, this function must not be used in the event "Initializing" but in the event "Initializing the project after connection to the site".
    New in version 20
    WEBDEV - Server code If your project uses pre-launched sessions, this function must not be used in the event "Initializing" but in the event "Initializing the project after connection to the site".
    WEBDEV - Server code If your project uses pre-launched sessions, this function must not be used in the event "Initializing" but in the event "Initializing the project after connection to the site".
Example
// Connexion utilisant le mode d'authentification "OAuth 2.0"
Cnx is gglConnection
Cnx.Email = "email_utilisateur_final@gmail.com"
Cnx.ClientID = "387756281032-qffa6dajjd5348iqhi558dkd98xxxxxx.apps.googleusercontent.com"
Cnx.ClientSecret = "S13DCA6KkYh1EgPv9-jLxxxh"
// Lors de la connexion, l'utilisateur devra valider les services utilisés
// (Consultez les exemples supplémentaires pour plus de détails)
IF Cnx.Connect() = False THEN
Error(ErrorInfo())
END
Syntax

Connecting with the basic authentication Hide the details

<Result> = <Google connection>.Connect()
<Result>: Boolean
  • True if the authentication was performed,
  • False if a problem occurred. To get the details of the error, use ErrorInfo.
<Google connection>: gglConnection variable
Name of the variable of type gglConnection to be used.

Connecting by specifying the services used Hide the details

<Result> = <Google connection>.Connect(<Google service>)
<Result>: Boolean
  • True if the authentication was performed,
  • False if a problem occurred. To get the details of the error, use ErrorInfo.
<Google connection>: gglConnection variable
Name of the Variable type gglConnection to be used.
<Google service>: Integer constant (or combination of constants)
Google service to enable (the application must access these services):
gglServiceCalendar"Google Calendar" service: Google calendar
gglServiceContacts"Google Contacts" service: Management of Google contacts
gglServiceDocuments"Google Documents List" service: Management of documents
gglServicePicasa"Picasa" service
Remarks

Possible error cases:

  • The Internet connection is not valid.
  • The authentication was not performed properly.
Versions 20 and later

Prerequisites for OAuth 2.0 authentication

To connect with the OAuth 2.0 authentication, the application must be declared on your Google developer console: https://developers.google.com/console. In the console:
  1. Click "Create a project". Give the name of your project. An identifier is automatically proposed for your project.
  2. Validate
  3. The project is created.
  4. In the menu on the left, click "API and authentication" then "API".
  5. Choose the services required by the application:
    • To access the calendars, choose "Calendar API" ("Google Apps APIs" category).
    • To access the contacts, choose "Contacts API" ("Google Apps APIs" category).
    • To access the Google documents, choose "Drive API" ("Google Apps APIs" category).
    • To access the Picasa albums and the documents, there is no need to select a specific API.
  6. In the menu on the left, click "Identifiers".
  7. Then, click the "Create a client identifier" button.
    • Select the type of application: "Application installed".
    • The authorization screen must be configured during the first creation of client identifier.
    • In the authorisation screen, in the "Product name" area, enter the name of your application for example.
    • Click "Save".
    • The screen for creating the client identifier is re-displayed.
      • WINDEV For WINDEV applications, select "Installed application" then "Other".
      • WEBDEV - Server code For the WEBDEV sites, select "Web application". In the "Redirect URI allowed" field, enter the Address of the Web server on which your site is installed followed by "/WD27 0AWP/WD27 0Awp.exe/GGLCONNECT_RETURN".. The syntax has the following type:
        http[s]://<Nom_ou_IP_Serveur>[:<Port>]/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR

        For example:
        • In test mode, with a Web server configured on the default port (80):
          http://localhost/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In test mode, with a Web server configured on port 8080:
          http://localhost:8080/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Internet deployment, with a Web server configured on the default port with "www.mydomain.com" as domain:
          http://www.mondomaine.com/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Internet deployment, with a Web server configured in https on the default port (443) with "www.mydomain.com" as domain:
          https://www.mondomaine.com/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Intranet deployment, with a Web server configured on port 81 with "IntranetServer" as computer name:
          http://ServeurIntranet:81/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
    • Validate. The client identifiers are created:
      • Client identifier. This identifier must be stored. It will be used in the gglConnection variable.
      • Secret code of client. This identifier must be stored. It will be used in the gglConnection variable.
      • WINDEV Redirection URI. Check whether "http://localhost" is specified.
New in version 20

Prerequisites for OAuth 2.0 authentication

To connect with the OAuth 2.0 authentication, the application must be declared on your Google developer console: https://developers.google.com/console. In the console:
  1. Click "Create a project". Give the name of your project. An identifier is automatically proposed for your project.
  2. Validate
  3. The project is created.
  4. In the menu on the left, click "API and authentication" then "API".
  5. Choose the services required by the application:
    • To access the calendars, choose "Calendar API" ("Google Apps APIs" category).
    • To access the contacts, choose "Contacts API" ("Google Apps APIs" category).
    • To access the Google documents, choose "Drive API" ("Google Apps APIs" category).
    • To access the Picasa albums and the documents, there is no need to select a specific API.
  6. In the menu on the left, click "Identifiers".
  7. Then, click the "Create a client identifier" button.
    • Select the type of application: "Application installed".
    • The authorization screen must be configured during the first creation of client identifier.
    • In the authorisation screen, in the "Product name" area, enter the name of your application for example.
    • Click "Save".
    • The screen for creating the client identifier is re-displayed.
      • WINDEV For WINDEV applications, select "Installed application" then "Other".
      • WEBDEV - Server code For the WEBDEV sites, select "Web application". In the "Redirect URI allowed" field, enter the Address of the Web server on which your site is installed followed by "/WD27 0AWP/WD27 0Awp.exe/GGLCONNECT_RETURN".. The syntax has the following type:
        http[s]://<Nom_ou_IP_Serveur>[:<Port>]/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR

        For example:
        • In test mode, with a Web server configured on the default port (80):
          http://localhost/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In test mode, with a Web server configured on port 8080:
          http://localhost:8080/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Internet deployment, with a Web server configured on the default port with "www.mydomain.com" as domain:
          http://www.mondomaine.com/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Internet deployment, with a Web server configured in https on the default port (443) with "www.mydomain.com" as domain:
          https://www.mondomaine.com/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Intranet deployment, with a Web server configured on port 81 with "IntranetServer" as computer name:
          http://ServeurIntranet:81/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
    • Validate. The client identifiers are created:
      • Client identifier. This identifier must be stored. It will be used in the gglConnection variable.
      • Secret code of client. This identifier must be stored. It will be used in the gglConnection variable.
      • WINDEV Redirection URI. Check whether "http://localhost" is specified.

Prerequisites for OAuth 2.0 authentication

To connect with the OAuth 2.0 authentication, the application must be declared on your Google developer console: https://developers.google.com/console. In the console:
  1. Click "Create a project". Give the name of your project. An identifier is automatically proposed for your project.
  2. Validate
  3. The project is created.
  4. In the menu on the left, click "API and authentication" then "API".
  5. Choose the services required by the application:
    • To access the calendars, choose "Calendar API" ("Google Apps APIs" category).
    • To access the contacts, choose "Contacts API" ("Google Apps APIs" category).
    • To access the Google documents, choose "Drive API" ("Google Apps APIs" category).
    • To access the Picasa albums and the documents, there is no need to select a specific API.
  6. In the menu on the left, click "Identifiers".
  7. Then, click the "Create a client identifier" button.
    • Select the type of application: "Application installed".
    • The authorization screen must be configured during the first creation of client identifier.
    • In the authorisation screen, in the "Product name" area, enter the name of your application for example.
    • Click "Save".
    • The screen for creating the client identifier is re-displayed.
      • WINDEV For WINDEV applications, select "Installed application" then "Other".
      • WEBDEV - Server code For the WEBDEV sites, select "Web application". In the "Redirect URI allowed" field, enter the Address of the Web server on which your site is installed followed by "/WD27 0AWP/WD27 0Awp.exe/GGLCONNECT_RETURN".. The syntax has the following type:
        http[s]://<Nom_ou_IP_Serveur>[:<Port>]/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR

        For example:
        • In test mode, with a Web server configured on the default port (80):
          http://localhost/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In test mode, with a Web server configured on port 8080:
          http://localhost:8080/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Internet deployment, with a Web server configured on the default port with "www.mydomain.com" as domain:
          http://www.mondomaine.com/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Internet deployment, with a Web server configured in https on the default port (443) with "www.mydomain.com" as domain:
          https://www.mondomaine.com/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
        • In Intranet deployment, with a Web server configured on port 81 with "IntranetServer" as computer name:
          http://ServeurIntranet:81/WD270AWP/WD270Awp.exe/GGLCONNECT_RETOUR
    • Validate. The client identifiers are created:
      • Client identifier. This identifier must be stored. It will be used in the gglConnection variable.
      • Secret code of client. This identifier must be stored. It will be used in the gglConnection variable.
      • WINDEV Redirection URI. Check whether "http://localhost" is specified.
Versions 20 and later

OAuth 2.0 authentication

The call to <gglConnection variable>.Connect triggers:
  1. The opening of a login window for the end user. If the Property Email of the Variable gglConnection is specified, Google will pre-populate the login window with the Address Email specified. The login window is not displayed if the user is already connected.
  2. The opening of the authorisation window. The end user must allow the application to access his account. This window is automatically closed when the user accepts or cancels.
Remarks:
  • If the syntax 1 is used (connection with basic authentication), an authorization window will be displayed whenever an attempt is performed to access a new service.
  • If the syntax 2 is used (connection by specifying the services used), an authorization window will be displayed for all the services requested at the beginning of the application.
  • The authorization window can be displayed during the first application start if the persistence of connection is managed (see next paragraph).
WEBDEV - Server code Limitations: The OAuth 2.0 authentication is not supported if the connection requires interactivity (validation of Google pages):
  • In the Webservices.
  • In Ajax.
  • In the scheduled WEBDEV tasks.
  • In the delayed WEBDEV tasks.
  • In the threads.
In this case, we recommend that you use the persistence of connection.
Caution: The session timeout is also applied when displaying Google connection pages.
New in version 20

OAuth 2.0 authentication

The call to <gglConnection variable>.Connect triggers:
  1. The opening of a login window for the end user. If the Property Email of the Variable gglConnection is specified, Google will pre-populate the login window with the Address Email specified. The login window is not displayed if the user is already connected.
  2. The opening of the authorisation window. The end user must allow the application to access his account. This window is automatically closed when the user accepts or cancels.
Remarks:
  • If the syntax 1 is used (connection with basic authentication), an authorization window will be displayed whenever an attempt is performed to access a new service.
  • If the syntax 2 is used (connection by specifying the services used), an authorization window will be displayed for all the services requested at the beginning of the application.
  • The authorization window can be displayed during the first application start if the persistence of connection is managed (see next paragraph).
WEBDEV - Server code Limitations: The OAuth 2.0 authentication is not supported if the connection requires interactivity (validation of Google pages):
  • In the Webservices.
  • In Ajax.
  • In the scheduled WEBDEV tasks.
  • In the delayed WEBDEV tasks.
  • In the threads.
In this case, we recommend that you use the persistence of connection.
Caution: The session timeout is also applied when displaying Google connection pages.

OAuth 2.0 authentication

The call to <gglConnection variable>.Connect triggers:
  1. The opening of a login window for the end user. If the Property Email of the Variable gglConnection is specified, Google will pre-populate the login window with the Address Email specified. The login window is not displayed if the user is already connected.
  2. The opening of the authorisation window. The end user must allow the application to access his account. This window is automatically closed when the user accepts or cancels.
Remarks:
  • If the syntax 1 is used (connection with basic authentication), an authorization window will be displayed whenever an attempt is performed to access a new service.
  • If the syntax 2 is used (connection by specifying the services used), an authorization window will be displayed for all the services requested at the beginning of the application.
  • The authorization window can be displayed during the first application start if the persistence of connection is managed (see next paragraph).
WEBDEV - Server code Limitations: The OAuth 2.0 authentication is not supported if the connection requires interactivity (validation of Google pages):
  • In the Webservices.
  • In Ajax.
  • In the scheduled WEBDEV tasks.
  • In the delayed WEBDEV tasks.
  • In the threads.
In this case, we recommend that you use the persistence of connection.
Caution: The session timeout is also applied when displaying Google connection pages.
Versions 20 and later

Persistence of connection

During the connection to the Google services, the authentication tokens are not saved. It is therefore necessary to re-login and re-authorize access to the application each time the application is run (i.e. each time a "blank" Variable gglConnection is used).
In order for the access authorization to be persistent, all you have to do is call the serialization functions of WLanguage.
Example for implementing the persistence by using an XML file:
let sFichierPersistanceAuth = SysDir(srLocalAppData) + [fSep] + "authggl.xml"
 
cnx is gglConnection
// Si connexion déjà effectuée
IF fFileExist(sFichierPersistanceAuth) THEN
// Restauration de la connexion
let bufDésérialise = fLoadBuffer(sFichierPersistanceAuth)
Deserialize(cnx, bufDésérialise, psdXML)
ELSE
// Nouvelle connexion
cnx.Email = "email@gmail.com"
cnx.ClientID = "387756281032-qffa6dajjd5348iqhi558xxxxxxxx.apps.googleusercontent.com"
cnx.ClientSecret = "Sxxxxx-jLMwwh"
END
 
IF cnx.Connect(gglServiceCalendar) THEN
// Sauvegarde de la connexion pour réutilisation future
bufSérialise is Buffer
Serialize(cnx, bufSérialise, psdXML)
fSaveBuffer(sFichierPersistanceAuth, bufSérialise)
END

Remark: The authentication tokens of a gglConnection variable can be cleared via <gglConnection variable>.Disconnect.
New in version 20

Persistence of connection

During the connection to the Google services, the authentication tokens are not saved. It is therefore necessary to re-login and re-authorize access to the application each time the application is run (i.e. each time a "blank" Variable gglConnection is used).
In order for the access authorization to be persistent, all you have to do is call the serialization functions of WLanguage.
Example for implementing the persistence by using an XML file:
let sFichierPersistanceAuth = SysDir(srLocalAppData) + [fSep] + "authggl.xml"
 
cnx is gglConnection
// Si connexion déjà effectuée
IF fFileExist(sFichierPersistanceAuth) THEN
// Restauration de la connexion
let bufDésérialise = fLoadBuffer(sFichierPersistanceAuth)
Deserialize(cnx, bufDésérialise, psdXML)
ELSE
// Nouvelle connexion
cnx.Email = "email@gmail.com"
cnx.ClientID = "387756281032-qffa6dajjd5348iqhi558xxxxxxxx.apps.googleusercontent.com"
cnx.ClientSecret = "Sxxxxx-jLMwwh"
END
 
IF cnx.Connect(gglServiceCalendar) THEN
// Sauvegarde de la connexion pour réutilisation future
bufSérialise is Buffer
Serialize(cnx, bufSérialise, psdXML)
fSaveBuffer(sFichierPersistanceAuth, bufSérialise)
END

Remark: The authentication tokens of a gglConnection variable can be cleared via <gglConnection variable>.Disconnect.

Persistence of connection

During the connection to the Google services, the authentication tokens are not saved. It is therefore necessary to re-login and re-authorize access to the application each time the application is run (i.e. each time a "blank" Variable gglConnection is used).
In order for the access authorization to be persistent, all you have to do is call the serialization functions of WLanguage.
Example for implementing the persistence by using an XML file:
let sFichierPersistanceAuth = SysDir(srLocalAppData) + [fSep] + "authggl.xml"
 
cnx is gglConnection
// Si connexion déjà effectuée
IF fFileExist(sFichierPersistanceAuth) THEN
// Restauration de la connexion
let bufDésérialise = fLoadBuffer(sFichierPersistanceAuth)
Deserialize(cnx, bufDésérialise, psdXML)
ELSE
// Nouvelle connexion
cnx.Email = "email@gmail.com"
cnx.ClientID = "387756281032-qffa6dajjd5348iqhi558xxxxxxxx.apps.googleusercontent.com"
cnx.ClientSecret = "Sxxxxx-jLMwwh"
END
 
IF cnx.Connect(gglServiceCalendar) THEN
// Sauvegarde de la connexion pour réutilisation future
bufSérialise is Buffer
Serialize(cnx, bufSérialise, psdXML)
fSaveBuffer(sFichierPersistanceAuth, bufSérialise)
END

Remark: The authentication tokens of a gglConnection variable can be cleared via <gglConnection variable>.Disconnect.
Component: wd270ggl.dll
Minimum version required
  • Version 24
This page is also available for…
Comments
Click [Add] to post a comment