Questions tagged [google-api-java-client]

The Google APIs Client Library for Java is a flexible, efficient, and powerful Java client library for accessing any HTTP-based API on the web, not just Google APIs.

Google APIs Client Library for Java

Overview

The Google APIs Client Library for Java is a flexible, efficient, and powerful Java client library for accessing any HTTP-based API on the web, not just Google APIs.

The library has the following features:

Accessing Google APIs

To use Google's Java client libraries to call any Google API, you need two libraries:

  • The core Google APIs Client Library for Java (google-api-java-client), which is the generic runtime library described here. This library provides functionality common to all APIs, for example HTTP transport, error handling, authentication, JSON parsing, media download/upload, and batching.
  • An auto-generated Java library for the API you are accessing, for example the generated Java library for the BigQuery API. These generated libraries include API-specific information such as the root URL, and classes that represent entities in the context of the API. These classes are useful for making conversions between JSON objects and Java objects.

To find the generated library for a Google API, visit Google APIs Client Library for Java. The API-specific Java packages include both the core google-api-java-client and the client-specific libraries.

If you are using the old GData library, you need to migrate.

Developing for Android

If you are developing for Android and the Google API you want to use is included in the Google Play Services library, you should use that library for the best performance and experience.

To access other Google APIs, you can use the Google APIs Client Library for Java, which supports Android 1.5 (or higher).

Other Java environments

In addition to Android 1.5 or higher, the Google APIs Client Library for Java supports the following Java environments: - Java 5 (or higher), standard (SE) and enterprise (EE) - Google App Engine

Not supported: Google Web Toolkit (GWT), Java mobile (ME), and Java 1.4 (or earlier).

Highlighted Features

  • The library makes it simple to call Google APIs.

    You can call Google APIs using Google service-specific generated libraries with the Google APIs Client Library for Java. Here's an example that makes a call to the Google Calendar API:

    java // Show events on user's calendar. View.header("Show Calendars"); CalendarList feed = client.calendarList().list().execute(); View.display(feed);

  • The library makes authentication easier.

    The authentication library can reduce the amount of code needed to handle OAuth 2.0, and sometimes a few lines is all you need. For example:

    java /** Authorizes the installed application to access user's protected data. */ private static Credential authorize() throws Exception { // load client secrets GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(CalendarSample.class.getResourceAsStream("/client_secrets.json"))); // set up authorization code flow GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( httpTransport, JSON_FACTORY, clientSecrets, Collections.singleton(CalendarScopes.CALENDAR)).setDataStoreFactory(dataStoreFactory) .build(); // authorize return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); }

  • The library makes batching and media upload/download easier.

    The library offers helper classes for batching, media upload, and media download.

  • The library runs on Google App Engine.

    App Engine-specific helpers make quick work of authenticated calls to APIs, and you do not need to worry about exchanging code for tokens. For example:

    java @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { AppIdentityCredential credential = new AppIdentityCredential(Arrays.asList(UrlshortenerScopes.URLSHORTENER)); Urlshortener shortener = new Urlshortener.Builder(new UrlFetchTransport(), new JacksonFactory(), credential) .build(); UrlHistory history = shortener.URL().list().execute(); ... }

  • The library runs on Android (@Beta).

    If you are developing for Android and the Google API you want to use is included in the Google Play Services library, you should use that library for the best performance and experience.

    To access other Google APIs, you can use the Google Client Library for Java's Android-specific helper classes, which are are well-integrated with Android AccountManager. For example:

    java @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Google Accounts credential = GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS)); SharedPreferences settings = getPreferences(Context.MODE_PRIVATE); credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null)); // Tasks client service = new com.google.api.services.tasks.Tasks.Builder(httpTransport, jsonFactory, credential) .setApplicationName("Google-TasksAndroidSample/1.0").build(); }

  • The library is easy to install.

    The Google APIs Client Library for Java is easy to install, and you can download the binary directly from the Downloads page, or you can use Maven or Gradle. To use Maven, add the following lines to your pom.xml file:

    maven <project> <dependencies> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> <version>1.20.0</version> </dependency> </dependencies> </project>

    To use Gradle, add the following lines to your build.gradle file:

    gradle repositories { mavenCentral() } dependencies { compile 'com.google.api-client:google-api-client:1.20.0' }

Dependencies

This library is built on top of two common libraries, also built by Google, and also designed to work with any HTTP service on the web: * Google HTTP Client Library for Java * Google OAuth Client Library for Java

Important Warnings

@Beta

Features marked with the @Beta annotation at the class or method level are subject to change. They might be modified in any way, or even removed, in any major release. You should not use beta features if your code is a library itself (that is, if your code is used on the CLASSPATH of users outside your own control).

Deprecations

Deprecated non-beta features will be removed eighteen months after the release in which they are first deprecated. You must fix your usages before this time. If you don't, any type of breakage might result, and you are not guaranteed a compilation error.

Documentation

Links

1147 questions
4
votes
1 answer

Google API java client - pageSize

Why does service.list().setPageSize(pageSize) not work? It does not return list of elements with specified pageSize. Where is the problem? EDIT Here is example of code that does not work: Appsactivity.Activities.List request =…
matoni
  • 2,479
  • 21
  • 39
4
votes
1 answer

Java Google Contacts API Access Service Account Authentication

I'm trying to access Googles Contacts API but my attempt failed already on getting authorized. From other (web) languages i'm used to the APIConsole and the public API-key (authorization). GoogleCredential credential = new…
4
votes
1 answer

Google Subscription Defer using Java Client Libraries give 500 Internal Server Error

package com.google.play.developerapi.samples; import java.io.File; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.Collections; import javax.annotation.Nullable; import…
Piyush
  • 2,040
  • 16
  • 14
4
votes
1 answer

login Google account in webview using account manager token

I got the Access token from account Manager to access all google java client api, but I need to open WebView having google which has to be logged in through the access Token got from account manager. Anyone have any idea of this. I tried using…
Vinoj John Hosan
  • 6,448
  • 2
  • 41
  • 37
4
votes
0 answers

Non-blocking implementation of the Google API client's HttpTransport?

I'm running several concurrent API calls, and I was wondering whether a non-blocking implementation of HttpTransport exists for Google Api client. Does anybody know ?
David
  • 5,481
  • 2
  • 20
  • 33
4
votes
1 answer

GoogleApiClient.isConnected() returns true in airplane mode

We're experiencing the following behavior which doesn't seem to make sense: An attempt to connect an instance of GoogleApiClient succeeds and calling isConnected() in our instance of GoogleApiClient returns true even when it's clear that the client…
4
votes
2 answers

Using Google Cloud Storage JSON api in android

I want to upload image on Google Cloud Storage from my android app. For that I searched and found that GCS JSON Api provides this feature. I did a lot of research for Android sample which demonstrates its use. On the developer site they have…
Zankhna
  • 4,570
  • 9
  • 62
  • 103
4
votes
1 answer

Springframework "A redirect is required to get the users approval"

i have a problem with my spring web-app. I want to access the google (calendar) api with the webapp and thus i have to authenticate myself to the api and grant access to the calendar. But the actual problem is that i got the error…
smsnheck
  • 1,563
  • 3
  • 21
  • 33
4
votes
2 answers

Cannot resolve files when importing them Google API's

I'm developing a Glassware for Google Glass. I'm trying to import these files: import com.google.api.client.json.jackson.JacksonFactory; import com.google.api.services.oauth2.Oauth2; import com.google.api.services.oauth2.model.Userinfo; but I'm…
hichris123
  • 10,145
  • 15
  • 56
  • 70
4
votes
2 answers

Setting uploadType in Google Drive Java API

I'm having the same problem as this and this but in the Java domain. This question also covers what I want but since no answers have been forthcoming I thought I'd ask it here, with a little more detail. I'm most of the way through writing a Java…
davidf2281
  • 1,319
  • 12
  • 20
4
votes
2 answers

Google Drive API - too slow.

I've just working on Google Drive API. I have one problem, it's too slow. I use methods like in the Documentation. For example: List getFilesByParrentId(String Id, Drive service) throws IOException { Children.List request =…
4
votes
1 answer

Google’s Freebase API: Basic MQL Query and JSON Parse Example in Java?

Question What would a basic example of querying Freebase with MQL from the Java Freebase API (google-api-services-freebase) look like and what is the recommended way for processing the resulting data? I’m especially wondering how to “correctly” use…
Chriki
  • 15,638
  • 3
  • 51
  • 66
4
votes
4 answers

Google Directory API returns Not Authorized when call users().list().execute()

I need to read the list of users (and groups) from my google domain. So I went to my Google APIs Console and enabled Admin SDK and created a Service Account to call Google APIs. I use the following google…
dmitry747
  • 573
  • 1
  • 7
  • 27
4
votes
2 answers

Reports API 503 Backend Error

For the past couple of weeks the batch task I use to retrieve User Usage Reports from the Reports API has been failing with the following response: com.google.api.client.googleapis.json.GoogleJsonResponseException: 503 OK { "code" : 503, …
4
votes
1 answer

Google Drive SDK Client ID

I created an application following the Quickstart Android guide for Google Drive sdk. When I setup the project in the api console I was given a client id. But I am not using this client id anywhere. What is the use of the client id? Am I supposed to…
RagHaven
  • 4,156
  • 21
  • 72
  • 113