Google APIを使ってみたい!ということで、Rubyで
Google Calendarのイベントを取得するところまで
やってみたいと思います。
事前にやっておくこと
- Rubyをインストールしましょう
私は Ruby 2.3.1
を使っています
- Googleのアカウントを登録しましょう
- Google Calendarに何かしら予定を登録しましょう
Google APIsとは
Google Calendarのイベントを取得するには、 Google APIs
というサービスを使います。
Googleが公式に提供しているサービスで、
Googleマップ や YouTube などの Google API
を使用することができます。
色々な機能がありますが、今回はGoogle CalendarのAPIを使ってイベントを取得しましょう。
Google APIの設定をする
1. プロジェクトを作成しましょう。
ここでは cherryrb
としました。
リファレンスのURLをたたいたほうがやりやすいです。
この this wizard
に飛んで、登録していきましょう。
2. Google Calendar API
を有効にしましょう。
3. 認証情報に進みましょう。
その後、認証情報やOAuthの設定もあるので、どんどん進みます。
※認証情報のダウンロードは後からでもできます。
これで、認証情報が登録できました。
4. APIキーの設定
APIキーの設定も必要です。
動かそう
今回はサンプルを使います。
Google Calendarの ダッシュボード
の、
「このAPIについて」 というところに ドキュメント
とあるので、そこを参考にします。
Rubyのサンプルが用意されています。
基本的にこのドキュメントの通りに実行すれば簡単にできますが、
ちょっと手順を変えました。
1. Gemfileを用意
# A sample Gemfile
source "https://rubygems.org"
gem 'google-api-client'
$ bundle
これで google-api-client
のgemが入りました。
2. イベントを取得するコードを書く
書くというより、今回はドキュメントのコードをそのまま使っています。
ドキュメント の Step 3: Set up the sample
を使いましょう。
3. 「認証情報」のJSONをダウンロードします。
ここからダウンロードができます。
ダウンロードしたファイルは、 client_secret.json
にリネームして
ファイルの直下に置きます。
今の時点ではこのようなファイル構成です。
google_apis/
- event.rb
- client_secret.json
- Gemfile
- Gemfile.lock
4. rubyを実行
consoleからrubyを実行します。
ruby event.rb
そうすると、consoleにURLが表示されます。
そのURLをコピーして、ブラウザに貼り付けてください。
認証のキーがとれます。
そのキーを、
code = gets
の gets
のところに設定しましょう。
5. できた!
rubyを実行してみましょう。
イベントが取得できます。
Upcoming events:
- Cherry.rb #33 (2016-10-19T19:00:00+09:00)
- DDD.rb #8 (LED.mrb) (2016-10-20T19:00:00+09:00)
ymlの設定
認証キーをそのままベタ書きはあんまりなので、
ymlで読み込むように設定しました。
.gitignoreで設定すれば、gitにあげても他の人からは見られません。
- event.rb
require 'yaml'
data = YAML.load_file('setting.yml')
- setting.yml
user:
- code: xxxx
としました。これで、 data
の中にcodeが読めるようになります。
最終的なファイル構成は、以下のようになりました。
google_apis/
- .gitignore
- event.rb
- client_secret.json
- Gemfile
- Gemfile.lock
- setting.yml
最後に
今回はドキュメント通りにやってみる、という目的で実行してみました。
ここから色々カスタマイズしたり、他のアプリケーションと連携していきたいなと思っています。