Servoy Plugins

Google plugin news

October 5th, 2015
Time to say goodbye

With the next release cycle of our plugins and beans installer, we will no longer ship the Google plugin. Google has changed their APIs heavily and we have created a completely new plugin (called Google2) to reflect these changes, available as an open source project at ServoyForge: Depending on what functionality you use of this plugin, it might already no longer work due to deprecated APIs on the Google side, so you will need the new plugin for these functionalities anyway already.

The plugin you currently use will continue to work, but we will no longer support it. We hope you enjoyed the services it gave to you!

May 31st, 2011
Support for Spreadsheets, Fusion Tables, Geocoding

Version 3.0 of the plugin adds the following new features:

  • Support for Spreadsheets
  • Support for Fusion tables
  • Support for Geocoding
  • Support for "Anyone with the link" document permission

When you get or create a document of type SPREADSHEET you will get a Spreadsheet object instead of a Document object. A Spreadsheet object offers everything a Document object offers, plus Spreadsheet specific methods and properties:

  • addWorksheet(title, rowCount, columnCount) to add a Worksheet with the given name and size
  • createWorksheetFromDataSet(name, dataset) to create a Worksheet with the given name from a JSDataSet
  • deleteWorksheet(name/index) to delete a Worksheet
  • getWorksheet(name/index) to get the Worksheet with the given index or name
  • getWorksheets() to get all Worksheets as a Worksheet[] array
    Spreadsheets contain one or more Worksheets.

Each worksheet can either be looked as a collection of cells or as a list of data. In a list based worksheet the first row is used to identifiy a column's name. Some of the methods offered by the Worksheet object are more suitable for one or the other.

  • columnCount, rowCount and title properties
  • addRow(String[] columnNames, String[] rowData) adds a row to a list based worksheet
  • deleteWorksheet() deletes this worksheet
  • getAllCells() returns a WorksheetCell[] array in a cell based worksheet
  • getAsDataSet() returns a JSDataSet with all rows in a list based worksheet
  • getCell(row, column) returns the WorksheetCell with the given row and column
  • getCells(fromRow, toRow, fromColumn, toColumn) returns a WorksheetCell[] array with all filled cells in the given range
  • getDataSetByQuery() returns a JSDataSet with all rows matching the given query (e.g. \"name = John and age > 25\") in a list based worksheet
  • setCellValue(row, column, value) to set the value or formula of the given Cell

Finally, a worksheet contains WorksheetCell objects. Most important:

  • value property to get / set the cell's value
  • formula property to get / set the cell's formula

The FusionTableService object of the Google plugin allows you to

  • getAllTables() as a FusionTable[] array
  • createTableFromDataset(tableName, dataset, columnTypes[]) to create a FusionTable from the dataset provided using the given column types
  • dropTable(int tableId / FusionTable table) to drop a table
  • getDataSetByQuery(sqlQuery) to get a dataset based on the query you provide; in the query you need to select from the tableId (SELECT ... FROM 12345) and not the name

The FusionTable object offers

  • tableId, tableName properties
  • getColumnIds(), getColumnNames(), getColumnTypes() to get column information
  • getColumns() to get a JSDataSet with columnId, columnName and columnType
  • getDataSetByQuery() to get a dataset based on the query you provide; in the query you need to select from the tableId (SELECT ... FROM 12345) and not the name
  • getNumberOfRows()
  • getTableData() to return a JSDataSet with all the table's data
  • insertDataset() to add the data from the given JSDataSet to the table

The geocoding features allow you to either geocode an address or reverse-geocode from latitude/longitude coordinates. As a result you will receive a GeocodeResult object containing the components of the result.

Using the feature is simple:

vGeoResult = plugins.Google.geocodeAddress(address, [language]);
vGeoResult = plugins.Google.reverseGeocodeAddress(latitude, longitude, [language]);

And finally Google has added the possibility to set "Anyone with the link" document permissions to their API and so have we.

The new version is free for registered users and can be obtained from the download section. The sample solution has been updated to demonstrate the new features. A demo version licensed can be requested here.


December 6th, 2010
Version 2.2 adds latest libraries, fixes minor bugs

Version 2.2 includes the latest Google libraries and fixes a problem with Reminders in Calendar events.


April 17th, 2010
Version 2.1 released

Version 2.1 adds caching of Google accounts for better performance. Caching also prevents Google from suspecting an attack if too many connections are made. The new version also features folder search in Google docs.

Here is a short list of new features:

  • Google accounts are now cached for better performance and preventing Google from suspecting an attack and requiring a captcha
  • DocumentQuery can now be limited to the given Folder
  • Added getDocumentsByQuery() to Folder
  • Preventing duplicate participants in Events
  • Document: added addPublicAccess(String role) to make the document publicly available either as "writer" (editable) or "reader" (read only)
  • Document: added removePublicAccess() to remove public access to the Document
  • Document: added getPublicLink() to retrieve the link needed for public (non authenticated) access to a Document


April 17th, 2010
Support for Google docs added

With version 2 we have added support for Google docs.

The plugin now features a DocumentService with the following features:

  • getDocuments, getDocumentsByQuery, getDocumentById
  • getFolder(s)
  • createDocument, createFolder
  • addToFolder, removeFromFolder
  • uploadFile, uploadFileInBackground, uploadFileWithOCR, uploadFileWithTranslation
  • trash or delete document
  • create DocumentQuery (to perform a query for documents)
  • create DocumentAccess (to manage permissions)

The Document object features:

  • get / set hidden, lastViewed, name, starred, trashed, viewedByUser and writersCanInvite properties
  • get, add and remove permission(s)
  • add and remove from folder, get parent folder
  • export document content, optionally converting the document to a different format (for example from .doc to .odt)
  • set document content
  • get and export document revisions
  • get modification date and user, document type, document ID and link

To all the features of the Document object, the Folder object adds

  • get and create Subfolders
  • list content

The DocumentQuery object can be used to find Documents by

  • author
  • edited before/after
  • full text
  • opened before/after
  • owner, reader and writer
  • updated before/after
  • title
  • title exact
  • show deleted

The new version is free for registered users and can be obtained from the download section. The sample solution has been updated to demonstrate the new features. A demo version licensed can be requested here.


February 11th, 2010
Initial public release

We are proud to announce the immediate availability of our newest product: the Google plugin. The Google plugin allows Servoy developers to fully communicate with Google Apps. The plugin currently supports Google Calendar and Contacts, but will be enhanced by Google Docs and maybe more services in the near future.

The plugin makes it possible to synchronize calendar and contact data from a Servoy solution with a Google account both ways. That way, other clients like an iPhone or Apple's iCal and AddressBook can also synchronize their data with Google and the Servoy solution.

Currently, the plugin offers the following features

  • GoogleAccount: one default account for convenience or any number of accounts
  • CalendarService: get, create, modify and delete Calendars
  • Calendar: get and set Calendar properties; get, add, modifiy and delete events; query for events
  • Event: get and set properties, support for all day events, organizer, participants, recurrence rules and reminders
  • ContactService: get, create, modify and delete contact groups; get, create, modifiy and delete contacts; query for contacts
  • Contact: get and set properties, support for email addresses, IM addresses, photo, postal addresses, organizations, groups

We are working on support for Google docs for the next version. Other Google services might be added in later versions.

Get it
Version history

SAN Partner


Follow us:
Twitter Facebook
Twitter Twitter


Legal notice        © 2007-2011        Terms and conditions