LoginSignup
6

More than 5 years have passed since last update.

RubyでGoogle Calendarのイベントを取得する手順

Last updated at Posted at 2016-10-19

Google APIを使ってみたい!ということで、Rubyで
Google Calendarのイベントを取得するところまで
やってみたいと思います。

事前にやっておくこと

  • Rubyをインストールしましょう

私は Ruby 2.3.1 を使っています

  • Googleのアカウントを登録しましょう
  • Google Calendarに何かしら予定を登録しましょう

Google APIsとは

Google Calendarのイベントを取得するには、 Google APIs というサービスを使います。
Googleが公式に提供しているサービスで、
Googleマップ や YouTube などの Google API を使用することができます。

スクリーンショット 2016-10-18 20.09.18.png

色々な機能がありますが、今回はGoogle CalendarのAPIを使ってイベントを取得しましょう。

Google APIの設定をする

1. プロジェクトを作成しましょう。

スクリーンショット 2016-10-18 20.16.51.png

ここでは cherryrb としました。

リファレンスのURLをたたいたほうがやりやすいです。
この this wizard に飛んで、登録していきましょう。

スクリーンショット 2016-10-18 20.43.11.png

2. Google Calendar API を有効にしましょう。

有効にするとこのような表示になりました。
スクリーンショット 2016-10-18 20.17.36.png

3. 認証情報に進みましょう。

設定は以下のようにします。
スクリーンショット 2016-10-18 20.19.19.png

その後、認証情報やOAuthの設定もあるので、どんどん進みます。
※認証情報のダウンロードは後からでもできます。

これで、認証情報が登録できました。

4. APIキーの設定

APIキーの設定も必要です。

スクリーンショット 2016-10-18 20.40.55.png

動かそう

今回はサンプルを使います。

Google Calendarの ダッシュボード の、
「このAPIについて」 というところに ドキュメント とあるので、そこを参考にします。
Rubyのサンプルが用意されています。

スクリーンショット 2016-10-18 20.12.23.png

基本的にこのドキュメントの通りに実行すれば簡単にできますが、
ちょっと手順を変えました。

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をダウンロードします。

ここからダウンロードができます。

スクリーンショット 2016-10-18 20.29.59.png

ダウンロードしたファイルは、 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

最後に

今回はドキュメント通りにやってみる、という目的で実行してみました。
ここから色々カスタマイズしたり、他のアプリケーションと連携していきたいなと思っています。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6