Google APIs Client Library for Java: now with OAuth 2.0
By Yaniv
Inbar, Google APIs Client TeamDuring
Google
I/O 2011, we announced a major milestone by releasing the Beta version of the open
source
Google APIs Client
Library for Java. This release included
service-specific
libraries and samples for Google APIs, built on our
new
client library generation infrastructure. Since that version 1.4 launch, we’ve been
comfortable enough with the stability and features of the library that we want you to
start
building real production Java 5,
Android, and
Google
App Engine applications and
send us your
feedback.
Today we are announcing a new milestone for the
Java client library. With the version 1.5 release, we’re making available the open source
Google OAuth Client Library
for Java in Beta, with support for both
OAuth 1.0a and
OAuth 2.0. OAuth is an open
standard for allowing a client application to securely gain access to a user’s private data
stored on Google without ever asking for their password. Most Google APIs support OAuth 2.0,
and we want to encourage adoption of OAuth 2.0 more widely on the web. That’s why we built
this library to work with any API on the web -- not just Google APIs -- that comply with the
OAuth specifications. Our current implementation of OAuth 2.0 is based on
draft 10, but we will
update it soon to the final draft, once it becomes an official standard. We encourage you to
try
it and
send us your
feedback.
Here is an example of how easy it is to use the
OAuth 2.0 library to make a request using the library for the
Google+ API (check out
more samples):
// Set up the HTTP
transport and JSON factory
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
// Set up OAuth 2.0 access of protected resources
// using the
refresh and access tokens, automatically
// refreshing the access token when it
expires
GoogleAccessProtectedResource requestInitializer =
new GoogleAccessProtectedResource(accessToken, httpTransport,
jsonFactory, clientId, clientSecret, refreshToken);
// Set up the main Google+ class
Plus plus = new Plus(httpTransport,
requestInitializer, jsonFactory);
// Make a request to access your profile and display it to
console
Person profile
= plus.people().get("me").execute();
System.out.println("ID: " +
profile.getId());
System.out.println("Name:
" + profile.getDisplayName());
System.out.println("Image URL:
" + profile.getImage().getUrl());
System.out.println("Profile URL:
" + profile.getUrl());
Finally, we are making available a
Beta version of the open source
Google HTTP Client Library for
Java. This is the common HTTP client library that the above two libraries are built
on, and is built to work with any API on the web. It features a pluggable HTTP transport
abstraction that allows it to work seamlessly on any of the supported Java platforms, support
for efficient JSON and XML data models for parsing and serialization, and a pluggable JSON and
XML parser so you can use whatever works best for you. Please
try
it and
send us your
feedback.
We are looking forward to finding out what you can
build using these libraries on Google APIs. Please let us know how we can make the libraries
easier to use and better suited for your needs.
As we announced at Google I/O 2010,
we've been developing APIs that can provide descriptions of themselves via
metadata. This new technique makes it easier to create and maintain client libraries
that support more languages, work with more APIs, and are easier to use than ever before. This
post announces one of several recent major milestones for our client
libraries.Yaniv Inbar is a
Senior Software Engineer and Technical Lead of the Google APIs Client Libraries &
Tools team. He is the lead developer of the open source Google APIs Client Library for Java.
Yaniv has worked at Google for 5 years, and has a total of 12 years industry experience as a
software engineer.Posted by Scott Knaster,
Editor