ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Communication / Google functions
  • Properties specific to gglConnection variables
  • Prerequisites for OAuth 2.0 authentication
  • Connection persistence
  • Functions that use a gglConnection variable
  • Functions (prefix syntax) that handle gglConnection variables
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
gglConnection (Variable type)
In french: gglConnexion
The gglConnection type is used to describe a connection to the Google services and to manage the authentication to different services. You can define and change the characteristics of this connection using different WLanguage properties.
Note: For more details on the declaration of this type of variable and the use of WLanguage properties, see Declaring a variable.
Example
// Connexion
Cnx is gglConnection
Cnx.Email = "email_utilisateur_final@gmail.com"
Cnx.ClientID = "387756281032-qffa6dajjd5348iqhi558dkd98xxxxxx.apps.googleusercontent.com" 
Cnx.ClientSecret = "S13DCA6KkYh1EgPv9-jLxxxh" 
IF GglConnect(Cnx) = False THEN
	Error(ErrorInfo())
END
Properties

Properties specific to gglConnection variables

The following properties can be used to handle a Google connection:
NameType used Effect
ClientIDCharacter stringClient identifier given when declaring the application in the Google console.
ClientSecretCharacter stringSecret code of the client given when declaring the application in the Google console.
EmailCharacter stringEmail of final client. This property is optional. This property is used to pre-fill the login window of the client to his Google account.
Warning: This property does not retrieve the email address of the authenticated account.
Remarks

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 websites, select "Web application". In the "Authorized redirection URI" area, enter the address of the Web server where your site is installed followed by "/WD300AWP/WD300Awp.exe/GGLCONNECT_RETURN". The syntax has the following type:
        http[s]://<Server_name_or_IP_address>[:<Port>]/WD300AWP/WD300AWP.exe/GGLCONNECT_RETURN

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

Connection persistence

When connecting to the Google services, the authentication tokens are not saved. It is therefore necessary to log in again and allow access to the application each time it is run (i.e. each time a "blank" gglConnection variable 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 sAuthPersistenceFile = SysDir(srLocalAppData) + [fSep] + "gglauth.xml"

cnt is gglConnection
// If connection already established
IF fFileExist(sAuthPersistenceFile) THEN 
	// Restore the connection 
	let bufDeserialize = fLoadBuffer(sAuthPersistenceFile) 
	Deserialize(cnt, bufDeserialize, psdXML) 
ELSE 
	// New connection 
	cnt.Email = "email@gmail.com" 
	cnt.ClientID = "387756281032-qffa6dajjd5348iqhi558xxxxxxxx.apps.googleusercontent.com" 
	cnt.ClientSecret = "Sxxxxx-jLMwwh" 
END 

IF GglConnect(cnt, gglCalendarService) THEN 
	// Save the connection in order to re-use it later 
	bufSerialize is Buffer 
	Serialize(cnt, bufSerialize, psdXML) 
	fSaveBuffer(sAuthPersistenceFile, bufSerialize) 
END

Remark: The authentication tokens of a gglConnection variable can be cleared via GglDisconnect.

Functions that use a gglConnection variable

All the functions for communicating with the Google services take a gglConnection variable as parameter.
GglConnectManages authentication on a Google server (via the "OAuth 2.0" authentication mode).
GglDeleteDeletes data from the Google server.
GglDisconnectDisconnects the user from the Google services used. During the next re-connection, the authorizations linked to the Google services will be asked again.
GglFillCalendarFills a calendar that was previously retrieved: the events corresponding to the calendar are retrieved (by using criteria if necessary).
GglFillCalendarByRequestFills a calendar that was previously retrieved: the events corresponding to the calendar are retrieved via a custom query.
GglGetCalendarRetrieves a Google calendar and its events according to its title or identifier.
GglGetDocumentDownloads a document from Google Docs.
GglListCalendarRetrieves the list of Google calendars associated with the specified Google account.
GglListContactRetrieves the list of contacts associated with the specified Google account.
GglListContactByRequestRetrieves a list of contacts from custom parameters.
GglListContactGroupRetrieves the list of groups of contacts associated with the specified Google account.
GglListDocumentRetrieves the list of documents available on the Google server for the current user.
GglRequestSends a communication request (HTTP request) to a Google service.
GglUploadDocumentUploads a document to the Google server.
GglWriteCreates and/or updates data on the Google server (addition or modification of data).

Functions (prefix syntax) that handle gglConnection variables

<gglConnection variable>.ConnectManages authentication on a Google server (via the "OAuth 2.0" authentication mode).
<gglConnection variable>.DeleteDeletes data from the Google server.
<gglConnection variable>.DisconnectDisconnects the user from the Google services used. During the next re-connection, the authorizations linked to the Google services will be asked again.
<gglConnection variable>.FillCalendarFills a calendar that was previously retrieved: the events corresponding to the calendar are retrieved (by using criteria if necessary).
<gglConnection variable>.FillCalendarByRequestFills a calendar that was previously retrieved: the events corresponding to the calendar are retrieved via a custom query.
<gglConnection variable>.GetCalendarRetrieves a Google calendar and its events according to its title or identifier.
<gglConnection variable>.GetDocumentDownloads a document from Google Docs.
<gglConnection variable>.ListCalendarRetrieves the list of Google calendars associated with the specified Google account.
<gglConnection variable>.ListContactRetrieves the list of contacts associated with the specified Google account.
<gglConnection variable>.ListContactByRequestRetrieves a list of contacts from custom parameters.
<gglConnection variable>.ListContactGroupRetrieves the list of groups of contacts associated with the specified Google account.
<gglConnection variable>.ListDocumentRetrieves the list of documents available on the Google server for the current user.
<gglConnection variable>.RequestSends a communication request (HTTP request) to a Google service.
<gglConnection variable>.UploadDocumentUploads a document to the Google server.
<gglConnection variable>.WriteCreates and/or updates data on the Google server (addition or modification of data).
Minimum version required
  • Version 14
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 10/15/2024

Send a report | Local help