Allow RGoogleDocs to access your Google Account
Posted on April 06, 2015
In this post I’ll talk about how to unblock your Google account so you can have access to your Goolgle docs when using the R package RGoogleDocs.
R Package RGoogleDocs
The R package RGoogleDocs (by Duncan Temple Lang) is a great tool. Basically, this package is a simple R interface to your google docs. In other words,
"RGoogleDocs" allows you to interact with the documents in your google drive from within R.
First you need to install the package. You can install it not from CRAN but from its github repository—via the
"devtools" package (which I’m assuming you already have installed). Here’s how to install
You can learn more about the package from the documentation provided by Duncan in his omegahat website:
Or you could also read the marvelous book XML and Web Technologies for Data Science with R (by Deb Nolan and Duncan Temple Lang).
Allowing access to your Google account
To interface with your google docs, you must first specify your login name for Google and your password information in the function
getGoogleAuth(). For instance, in my case the login name is
firstname.lastname@example.org, and let’s say I have my password in the object
gpasswd. The authentication process would be like this:
The problem is that Google, by default (and for very good reasons), will deny R accessing your account. According to Deb and Duncan (page 360):
On occasions, the attempt to call
getGoogleAuth()returns with an error saying that the operation if Forbidden. The Google authorization service has decided that additional vetting is necessary.
Moreover, you will likely receive an email in your gmail account with the subject title “Google Account: sign-in attempt blocked”. Here’s the content of the email I got:
So what can we do about it?
To solve the problem click on the link
https://www.google.com/settings/security/lesssecureapps which will take you a new window presenting you the option of turning on access to other apps (so that RGoogleDocs can have access to your account)
Working with google spreadsheets
Once you’ve turned on the lesssecureapps option, you can start working with
"RgoogleDocs". First, you have to create a connection for working with spreadsheets. To get access to the spreadsheets (rather than word processing documents), select
service = "wise":
Then, you can use
getDocs() with this connection to get back information about spreadsheets only:
There’s also the function
getWorksheets() which obtains a list of objects that identify each of the worksheets within a spreadsheet. For example, say you have a spreadsheet named
"schedule" that contains several worksheets:
getWorksheets() is smart enough to be able to work from the name of the spreadsheet, e.g.
However, it is faster to use the
GoogleDocument object returned via
getDocs() as it avoids an extra request to the Google Docs server.