Java から Google API に簡単にアクセス

Java 用 Google API クライアント ライブラリは、HTTP トランスポート、エラー処理、認証、JSON 解析、メディアのダウンロード/アップロード、バッチ処理など、すべての Google API に共通する機能を提供します。このライブラリには、一貫性のあるインターフェースを持つ強力な OAuth 2.0 ライブラリ、任意のデータスキーマをサポートする軽量で効率的な XML および JSON データモデル、プロトコル バッファのサポートが含まれています。

Google の Java 用クライアント ライブラリを使用して Google API を呼び出すには、アクセスする Google API の Java ライブラリを生成します。この生成ライブラリには、コア google-api-java-client ライブラリと、ルート URL などの API 固有の情報が含まれます。また、API のコンテキストでエンティティを表すクラスが含まれ、JSON オブジェクトと Java オブジェクト間の変換に役立ちます。
クラスレベルまたはメソッドレベルで @Beta のマークが付いた機能は、変更される可能性があります。メジャー リリースで変更または削除される場合があります。コードがライブラリ自体である(つまり、自分の管理外のユーザーの CLASSPATH でコードが使用されている)場合は、ベータ版の機能を使用しないでください。
ベータ版以外の非推奨の機能は、最初にサポートが終了したリリースから 18 か月後に削除されます。この時間までに使用状況を修正する必要があります。そうしないと、どのような種類の破損でも発生する可能性があり、コンパイル エラーは保証されません。

Java 用 Google API クライアント ライブラリのハイライト

Java 用 Google API クライアント ライブラリを使用して、Google サービス固有の生成ライブラリを使用して Google API を呼び出すことができます。(生成された Google API 用のクライアント ライブラリを確認するには、サポートされている Google API のリストをご覧ください)。Java 用 Calendar API クライアント ライブラリを使用して Google Calendar API を呼び出す例を次に示します。
 // Show events on user's calendar.
 
View.header("Show Calendars");
 
CalendarList feed = client.calendarList().list().execute();
 
View.display(feed);

ライブラリを使用すると、バッチ処理とメディアのアップロード / ダウンロードが容易になります。

このライブラリには、バッチ処理メディア アップロードメディア ダウンロード用のヘルパークラスが用意されています。
このライブラリには強力な認証ライブラリが含まれているため、OAuth 2.0 の処理に必要なコードの量を削減できます。場合によっては、数行で十分です。例:
 /** 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");
}
App Engine 固有のヘルパーを使用すると、API への認証済み呼び出しを簡単に行えます。コードをトークンと交換する必要はありません。

例:
 @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();
   
...
 
}
Java 用 Google クライアント ライブラリの Android 固有のヘルパークラスは、Android AccountManager と緊密に統合されています。例:
 @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();
 
}
生成されたライブラリを使用していない場合は、ダウンロード ページから Java 用 Google API クライアント ライブラリのバイナリを直接ダウンロードするか、Maven または Gradle を使用できます。Maven を使用するには、pom.xml ファイルに次の行を追加します。
 <project>
 
<dependencies>
   
<dependency>
     
<groupId>com.google.api-client</groupId>
     
<artifactId>google-api-client</artifactId>
     
<version>1.32.1</version>
   
</dependency>
 
</dependencies>
 
</project>

Gradle を使用するには、build.gradle ファイルに次の行を追加します。
 repositories {
      mavenCentral
()
 
}
  dependencies
{
      compile
'com.google.api-client:google-api-client:1.32.1'
 
}
Google API のインストールと設定について詳しくは、 クライアント ライブラリについては、 ダウンロード と設定手順をご覧ください。
Java の Google API クライアント ライブラリは、次の Java 環境をサポートしています。
  • Java 7 以降、Standard(SE)およびエンタープライズ(EE)。
  • Google App Engine
  • Android 4.4 以降: 必要な Google サービスで Google Play 開発者サービス ライブラリを使用できる場合は、代わりにそのライブラリを使用します。Google Play ライブラリを利用すると、最適なパフォーマンスとエクスペリエンスが得られます。
Google Web Toolkit(GWT)、Java モバイル(ME)、Java 6(またはそれ以前)はサポートされていません。

依存関係

Java の Google API クライアント ライブラリ(google-api-java-client)は、同じく Google が作成した 2 つの共通ライブラリの上に構築されており、ウェブ上の任意の HTTP サービスで動作するように設計されています。