okada-takuya / TogglToGCal

Toggl上にあるタイムエントリをGoogleカレンダーに イベントとして登録するRubyスクリプト.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TogglToGCalについて

TogglToGCalは,Toggl上にあるタイムエントリをGoogleカレンダーに イベントとして登録するRubyスクリプトです.

動作環境

Ruby1.9.3

Rubyの他に,google-api-clientが必要です. 以下のコマンドを実行して,gemをインストールしてください.

$ gem install google-api-client

準備

setting.ymlの設定

以下の3つをsetting.ymlに記述してください.

  • 前回のタイムエントリ取得日(before_date)
  • TogglのAPIトークン(toggl_api_token)
  • GoogleカレンダーID(GoogleカレンダーのカレンダーID)

ここで,前回のタイムエントリ取得日はTogglを利用し始めた日付にしてください.

TogglのAPIトークン

以下のリンク先の下部にAPIトークンが表示されています.

https://www.toggl.com/user/edit

GoogleAPIを利用するための手順

初めてGoogleAPIを利用する場合

本TogglToGCalは,GoogleAPIを利用しています. そのため,スクリプトの実行前にGoogleAPIを利用するための準備が必要です.

  1. GoogleAPIsConsole にアクセスし,Create Projectをクリックします.
  2. Googleの提供しているAPIが一覧で表示されますので,Calender APIのStatusをONに変更してください.
  3. GoogleAPIs,CalenderAPIのそれぞれについてAcceptをクリックしてください.
  4. 左メニューのAPI Accessをクリックし,Create OAuth 2.0 client ID… をクリックしてください.
  5. Project nameにTogglToGCalと入力してNextをクリックしてください.
  6. ラジオボタンにて,Installed application,Otherを選択し,Create client IDをクリックしてください.
  7. Client ID for installed applications以下にClient ID,Client secretが表示されます.

以前にGoogleAPIを利用したことがある場合

  1. GoogleAPIsConsole にアクセスし,左メニュー中のプルダウンメニューをクリックします.(名前は人によって違います)
  2. Createをクリックします.
  3. TogglToGCalと入力してCreate projectをクリックします.
  4. Googleの提供しているAPIが一覧で表示されますので,Calender APIのStatusをONに変更してください.
  5. GoogleAPIs,CalenderAPIのそれぞれについてAcceptをクリックしてください.
  6. 左メニューのAPI Accessをクリックし,Create OAuth 2.0 client ID… をクリックしてください.
  7. Project nameにTogglToGCalと入力してNextをクリックしてください.
  8. ラジオボタンにて,Installed application,Otherを選択し,Create client IDをクリックしてください.
  9. Client ID for installed applications以下にClient ID,Client secretが表示されます.

共通の手順

表示されたClient ID,Client secretを利用して,以下のコマンドを実行します.

$ google-api oauth-2-login --scope=https://www.googleapis.com/auth/calendar --client-id=CLIENT_ID --client-secret=CLIENT_SECRET
  1. ブラウザがポップアップし,認証を求められるので,認証をクリックしてください.
  2. ホームディレクトリに.google-api.yamlが生成されるので,このリポジトリをクローンしたディレクトリにコピーしてください.

以上で,GoogleAPIを利用する準備は完了です.

使い方

クローンしてきたディレクトリで,以下のコマンドを実行してください.

$ ruby TogglToGCal.rb

補足

生成されるファイル

TogglToGCalを実行すると,time_entrys時刻1-時刻2.txtというファイルが生成されます. このファイルは時刻1から時刻2までのタイムエントリの詳細情報一覧となっています. また,同時にwget-logというファイルが生成されます. これらファイルをTogglToGCalは参照していないので,不要だと感じた場合は適宜削除していただいてかまいません.

前回のタイムエントリ取得日(before_date)について

前回のタイムエントリ取得日は,TogglToGCalによって自動で更新されます. setting.ymlのこの値を変更してしまうと,重複してGoogleカレンダーにイベントが登録される可能性がありますので,注意してください.

タイムトラッキングツール中のイベントの生成について

Togglでトラッキングを行っている最中にTogglToGCalを実行すると,トラッキングを 行っている最中のタイムエントリは現在時刻までのイベントとして登録されます. 次回TogglToGCal使用時には前回のタイムエントリ取得時に現在時刻までのイベントとして登録された タイムエントリの残った時間は,タイムエントリとして登録されません. トラッキング中は,出来る限りTogglToGCalを実行しないことをおすすめします.

About

Toggl上にあるタイムエントリをGoogleカレンダーに イベントとして登録するRubyスクリプト.


Languages

Language:Ruby 100.0%