DataSpider RESTアダプタを使ってGoogleカレンダーの予定を取得する。

#APIの有効化
Google CalendarのAPIを有効にする必要があります。
1. [Google APIs](https://console.developers.google.com/?hl=JA)のライブラリからCalendar APIを選択します。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/c67f52a3-38a6-37cd-fa2b-0ac942286fb5.png)

2.「有効にする」をクリックします。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/91c050e5-8872-e123-95f4-bb72af43f46b.png)


#認証情報の作成
1. 次に「認証情報」に進みます。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/a798ee73-9252-abef-0468-2cae7f55e6b2.png)

2. 「ウェブサーバ（node.js、Tomcatなど）」を選択します。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/a19d6288-3c90-b15d-8aa3-53d28332c0c4.png)

3. 「ユーザーデータ」もしくは「アプリケーションデータ」を用途に合わせて選択します。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/272e5b4a-1283-e39a-897c-1ffb0fc5747f.png)

4. 「必要な認証情報」の設定します。名前に任意の値を設定します。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/bc08f837-81a8-27b6-7e29-f59b7d6caa9d.png)

5.認証済みのリダイレクトURIに以下の値を設定し、クライアントIDの作成を行います。
`http://<DataSpiderServer稼働OSのホスト名またはIPアドレス>:<ポート番号>/dataspider/oauth_2_0`
> （例）
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/bbbfb7f6-9e04-377e-7c6a-289e2e9b873c.png)
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/dc90cb11-9967-fefa-f4ec-f5d84f126599.png)

6.「ユーザに表示するサービス名」を設定します。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/3abe49c0-d226-202b-0fc0-0be06b32b787.png)

7.Client IDが発行されますので![image](https://qiita-image-store.s3.amazonaws.com/0/35843/8ea25145-87a8-1a52-1b24-c8ebfee133b4.png)をします。
> ![image](https://qiita-image-store.s3.amazonaws.com/0/35843/0deb2a96-0e53-6afb-67cb-9a262486f914.png)

8.ダウンロードしたファイルから以下の値をDataSpider RESTアダプタ側に設定していきます。
>client_id　→　クライアントID
>client_secret　→　クライアントシークレット
>redirect_uris　→　リダイレクトURI
>auth_uri　→　認可エンドポイント
>token_uri　→　トークンエンドポイント

#DataSpider RESTアダプタの設定
1.上記の通りそれぞれ設定します
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/ff6c04af-a411-16c7-b9f7-e1c322f70d1d.png)から

2.スコープを設定します。
[OAuth 2.0 Scopes for Google APIs](https://developers.google.com/identity/protocols/googlescopes#calendarv3)から`Calendar API, v3`の”Scope”をアダプタの”スコープ”に設定
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/b492a1c7-a3bc-e231-d745-6a4f3a1a28cf.png)
↓
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/873b8414-a7d2-a58e-a1fc-30a1aaf569bd.png)

3.追加パラメータを設定します。
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/8e83965a-6cd5-c127-56a5-fc022b08791b.png)
4.![image](https://qiita-image-store.s3.amazonaws.com/0/35843/2d7bddb4-de14-a28e-d436-a8157f95c59b.png)をクリックしてトークンを発行します。
アカウント認証して進んでいくと、リプレッシュトークンが自動設定されます。
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/17297fd4-2f75-a161-bdef-9b12bde3bded.png)
↓
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/7a6739e9-9943-b2c0-70e4-2cc1b08506d2.png)
↓
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/ca59103b-d422-8f08-dfd5-c86b9e7ddbed.png)
以上でOAuth2.0の設定は完了です。
最後に接続確認としてカレンダーから予定を取得します。

#接続確認
0.予定を取得するAPIのパラメータを確認します。
[Google Calendar API：Events: list](https://developers.google.com/google-apps/calendar/v3/reference/events/list)
> HTTP request
> `GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events`

1.接続先
グローバルリソースのURLにGoogleのURLを設定します。
>`https://www.googleapis.com/calendar/v3/calendars/`

2.パス
パスには`CalendarID`と`/events`を設定します。
CalendarIDはカレンダーを所有しているアカウントのメールアドレスでも大丈夫です。

以上で設定は完了ですので、実行してみます。
今回はファイルに出力してみたのですが、結果として以下のようなデータを取得することができました。
>![image](https://qiita-image-store.s3.amazonaws.com/0/35843/7f4ddac5-1e28-fc85-04ce-757da2bff388.png)

もちろん出力形式をJSON形式に変更することで後続の処理にも簡単に渡すことができます。