プログラム開発の情報や、雑記を投稿しているサイトです。

Google API Client Library for .NETの使い方

google-api-client-library-for-net

本記事では、Google API Client Library for .NETを利用するためのGDCの設定と、VisualStudioでの利用方法までを記載しています。

DGCのAPIの利用方法サンプルについては、別の記事で記載予定です。

Google API Client Library for .NETとは

GmailやGoogle CalendarといったGoogle Appsサービスといった幅広いサービスに対しグーグルはAPIを公開しており、開発者が利用できるようになっています。

APIはHTTP通信を利用するため多くののプログラミング言語で利用可能です。
それを、開発者がよりシンプルかつ柔軟にAPIを利用できるように、Google API Client Libraryとして、いくつかの言語向けにクライアントライブラリを提供しています。

その中にGoogle API Client Library for .NETという.NET Framework向けのライブラリも含まれており、NuGetからダウンロードして利用可能になっています。

Google Developer ConsoleからAPIを利用可能にする

まず、APIを利用可能にするためにGoogleアカウントで認証した状態でGoogle Developer Consoleにアクセスします。
プロジェクトを作成していればプロジェクト一覧が表示され、まだ作成していなければ作成画面が表示されます。

GoogleDrive1

多くのAPIはデフォルトで無効の状態になっており、このコンソールで有効にしないと利用できません。
右側の検索欄に「URL Shortener」と入力し、[URL Shortener API]のリンクをクリックします。

[API を有効にする]ボタンが表示されているときは無効な状態であるので、これを押すと有効にできます。
有効にしたら、左側のペインで[認証情報]を選択します。

この画面で、認証キーを発行し、API利用時にその値をセットすることになります。
この認証情報はプロジェクト全体を通して有効になるため、複数のAPIを有効にした場合、同じ認証情報で認証できるようになります。なお、APIを利用する場合に、スコープと呼ばれるAPIの利用可能な範囲を指定しなければなりません。

APIキーとOAuth 2.0による2種類の認証方法

Google APIの利用には認証が必要となります。
これは課金や上限の管理のためにAPIを実行しているアプリケーションを識別するためのようです。
そして、その認証方法は「APIキーによる公開APIへのアクセス」と「OAuth 2.0による認証」の2つに大きく分かれます。
さらに、Googleアカウント内のプライベートな情報にアクセスする場合には認可が必要であり、この場合はOAuth 2.0による認可が必要になります。

APIキーによる公開APIへのアクセス

APIキーによるアクセスでは、公開されている情報だけにアクセスするAPIのみ利用可能です。

APIキーの作成と取得

キーの作成

GoogleDrive2

GoogleDrive3

GoogleDrive4

GoogleDrive5

GoogleDrive6

GoogleDrive7

 

公開APIへのアクセス

Visual Studioでコンソールプロジェクトを作成し、Google URL Shortener API用のライブラリをNuGetから参照に追加します。

GoogleDrive8

GoogleDrive9

Google APIは、まず<API名>Service(この例ではUrlshortenerService)というクラス名のインスタンスを作成します。
このコンストラクターの引数に認証情報を渡しますが、APIキーの場合はGoogle.Apis.Services名前空間に所属するBaseClientService.Initializerクラス・インスタンスのAPIKeyプロパティに渡します。

OAuth 2.0によるAPIアクセス

ここでは、OAuth 2.0によるアクセスと認可の方法について説明します。
認可が必要なAPIの例としてGoogle+ APIを利用します。

「サービスアカウント」のクライアントIDの作成と取得

有効にしたら、[認証情報]に戻り、[OAuth]の下の[新しいクライアント ID を作成する]ボタンをクリックし、出てくる選択肢で[サービス アカウント]を選択します。

3つの選択肢のうち[サービス アカウント]のみ、他の2つと異なる使い方をします。

認可が必要なAPIではありますが、ユーザーの個人情報にアクセスせずに実行する場合、サービスアカウントという特別なアカウント情報を使ってアクセスできます。