ストアアプリでGoogle API
通常なら WebAuthenticationBroker.AuthenticateAsync
とか使うんですが。
NuGetにもある、Google APIライブラリ群を使用するとアクセスがかなり楽になります。
その使い方のメモ。
文字だけでスクリーンショットとかは撮ってません。
UIがコロコロ変わるのでもう面倒くさいのですよ。
Googleの設定
Projectを作る
まずは、Google Developers Consoleに行き、プロジェクトを作成します。
使い方は、まあ、その。
フォースを信じよ。
APIを使用できるように設定する
プロジェクトを作成したら、そのプロジェクトを開き、左側のメニューの中から「APIと認証」の中の「API」を選んでAPIの一覧を出してください。
その中で必要なAPIの行の右端の「ステータス」の列のスイッチをオンにしてください。
クライアントIDを作成する
同じく「APIと認証」の中の「認証情報」を選び、OAuthの「新しいクライアントIDを作成」します。
すると、適当なClient IDとClient Secretが作成されます。
これでアプリから認証できるようになりました。
作られたClient IDの情報はJSONで使いますので「JSONをダウンロード」をクリックして情報をダウンロードしておきます。
気が向いたら同じく「APIと認証」の中の「同意画面」とかカスタマイズして遊びましょう。
ストアアプリの設定
ストアアプリのプロジェクトを作成する
Windows Storeアプリが作れる適当なVisual Studioを起動してプロジェクトを作成します。
この辺はもう、ご自由に。
そこそこカスタマイズして楽しんだら前の項でダウンロードしたJSONファイルをAssetsに追加します。
適当なファイル名に変更して追加してください。
プロパティで
ビルドアクション:コンテント
出力ディレクトリへコピー:新しい時
とか設定しておいてください。
Google APIライブラリを追加
プロジェクトの中からNuGetを起動し、検索入力窓に google
と入力します。
Google API関連のライブラリがずらずら出てきますので、今回は試しにCalendar APIを使ってみましょう。
リストの中から、 Google.Apis.Calendar.v3 Client Library
をインストールします。
ぞろぞろと依存関係で入ってきますが、まあ、よきに計らってくれます。
他にもAPIの種類ごとにライブラリがありますので、見てみてください。
認証とAPIの使用
後はコードで認証とAPIを使います。
ざっと以下のようになります。
var cred = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new Uri("ms-appx:///Assets/client_secret.json"),
new string[] { CalendarService.Scope.Calendar },
"user",
CancellationToken.None);
var service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = cred,
ApplicationName = "Calendar Sample",
});
CalendarList cals = await service.CalendarList.List().ExecuteAsync();
foreach (CalendarListEntry cal in cals.Items)
{
Debug.WriteLine("title:" + cal.Summary);
}
-
GoogleWebAuthorizationBroker.AuthorizeAsync
で認証 -
CalendarService
で認証とAPIを結び付け -
ExecuteAsync
でAPI呼び出し
実に簡単。
あとはもう、credと各IDとライブラリ内の関数使って自由にデータを扱えばよろしい、と。
他のAPIもほとんど同じ流れで使えるはず。
気を付けるのは、2行目のUri。
Assetsに置いたファイルを見に行くようになりますので、間違えないようにして下さい。