Hey everybody,
today I show you how you can start working with the Google+ API and R. We create a personal API key, get our own stats and plot them in a nice looking graph.
Get the API Key
You can get our API key on the Google Developer console here: https://code.google.com/apis/console
There you can see an overview of you API activities if you have some. To create a new API connection click on “APIs” and turn on the Google+ API.
After you did this, you can click on “Google+” and you see a list of the available API calls. Now click on “Credentials” on the left and click on “Create new key” to create a new public API access. Then click on “Browser key” and then “Create”.
And there it is: you API key.
The R Part
For our first analysis we need the packages
library(RCurl); library(RJSONIO);
And we need our api key and our user id:
api_key<-"XXX" user_id <- "105616015219357887822"
In this case I used my own Google+ ID but you can use every ID you want. But we can just receive the public posts.
We get our raw data and put it in a JSON object with:
data <- getURL(paste("https://www.googleapis.com/plus/v1/people/",user_id,"/activities/public?maxResults=100&key=", api_key, sep=""),ssl.verifypeer = FALSE) js <- fromJSON(data, asText=TRUE);
We can now put the data in a DataFrame to make it more readable. But we don´t need all the values we received as these are a lot. We get the fields
df = data.frame(no = 1:length(js$items)) for (i in 1:nrow(df)){ df$kind[i] = js$items[[i]]$verb df$title[i] = js$items[[i]]$title df$replies[i] = js$items[[i]]$object$replies$totalItems df$plusones[i] = js$items[[i]]$object$plusoners$totalItems df$reshares[i] = js$items[[i]]$object$resharers$totalItems df$url[i] = js$items[[i]]$object$url }
We can save this DataFrame as a CSV file with:
filename <- paste("gplus_data_", user_id, sep="") # in case we have more user_ids write.table(df, file = paste0(filename,".csv"), sep = ",", col.names = NA, qmethod = "double")
Visualize your Posts
To visualize your posts we extract the informations we need and store them in the Data Frame df_graph
df_graph = df[,c(1,4,5,6)]
Then we can plot it with
require(ggplot2) require(reshape2) melted=melt(df_graph,id.vars='no') ggplot(melted,aes(x=factor(no),y=value,color=factor(variable),group=factor(variable)))+ geom_line()+xlab('no')+guides(color=guide_legend("metrics"))+ labs(title="Google+")
So, why would we want to do this? What does R bring to scatterplots of Google+ accesses?
Hey hypergeometric,
thanks for your comment.
My purpose of this post was on the one hand to show again the possibilities of R as something more than “just” a statistical language. With all its packages R got a lot of more different layers.
And on the other hand to show some of the possibilities of the Google+ API, which is not as developed as the Facebook API but also has some cool functions.
And to bring these two aspects together I wrote this post.
And you should do this when you are interested in your posts performance on Google+. This is more about Social Monitoring than about statistical computing.
I hope I could help you.
Regards
Cool. 🙂
Thank you David!
Hi, it is really good, thanks for sharing!
Also, I’d like to know if is possible to do something like they did for twitter using TwitterR (https://sites.google.com/site/miningtwitter/mining-viz).
Best,
Demetrius.
Hey Demas,
there are a lot of possibilites of working with Google+. This is a very interesting topic and I will write some new tutorials when I have some time. So follow my blog and you get noticed when there are new tutorials available.
Regards