Using the Google API on Linux

MonoDevelop 2.4

Mono 2.8.1

So, I had trouble getting the Google API to work in MonoDevelop, so I thought I’d show you how I did it. I got this from google code:

Setting up your environment

  1. Download the latest ZIP file release of the client library from
  2. Extract to a local directory (e.g. “/scratch/gdata.NET”)
  3. Use your distribution’s package management to install Mono. Alternatively, you can download it from
  4. In some distributions you have to make sure that the nunit.framework.dll file is properly linked into the mono library. If mono was installed to “/usr/lib/mono”, then ensure that there are symbolic links in “/usr/lib/mono/1.0” and “/usr/lib/mono/2.0” for nunit.framework.dll (which should be installed in “/usr/lib/mono/gac/nunit.framework/<someversionstring>/nunit.framework.dll”).

Compiling and running samples

  1. Assuming you installed the client library to “/scratch/gdata.NET”, change to the “/scratch/gdata.NET/clients/cs” directory.
  2. Edit the Makefile depending on what version of .NET you wish to use. For .NET 1.x, use CSC=mcs and for .NET 2.x, use CSC=gmcs.
  3. Run make to compile the libraries and sample applications.
  4. Execute make install if you want to install the client library DLLs into the Mono library.

Developing your own application
If you executed a make install after compiling the client library, you should be able to include the libraries in your own code by passing -r:Google.GData.Extensions.dll -r:Google.GData.Client.dll to the Mono C# compiler along with references to the DLL files of any specific service extensions you wish to use.

Now the Google API is available in the ‘Packages’ tab when you go to add references to your project.

After setting up my environment, I was still getting a security error (something about the Authentication failing). That’s because Mono is locked down by default. So, I ran this to import all of the SSL certs from Firefox (and therefore Google’s cert because I’ve logged into Google from Firefox):

mozroots –import

You just have to say yes to all the imports (there are a lot of them).