AipoのスケジュールをGoogleカレンダーに同期表示する
これ単体で動きます。
PHP5.4から対応です。(Guzzle3使ってるので)
Google Developer Consoleでの設定
新規プロジェクトの作成
https://cloud.google.com/console へアクセスして、Google Calendar 連携用のプロジェクトを作成します
Google Calendar APIの有効化
APIタブでプロジェクトでGoogle Calendar APIを有効化します
認証情報の生成と取得
プロジェクトで利用するクライアントIDを作成します
クライアントIDのタイプは「サービス アカウント」になります。
鍵ファイル(~.p12)がダウンロードされるので保存しておくこと。
Google Calendarでの設定
Aipo用カレンダーを追加
カレンダー名を使うので覚えておくこと。
特定のユーザと共有に先ほど作ったクライアントIDのメールアドレスを入力。
(~@developer.gserviceaccount.com)
※[権限の設定]を「変更および共有の管理権限」または「予定の変更権限」に設定
同期ツールの設定
インストール
git clone git@github.com:fantasista21jp/aipo_to_gcal.git
cd aipo_to_gcal
composer install
設定
configs.php の↓の部分を自分の設定に合わせて修正
$clientId = 'Your Client ID';
$authEmail = 'Your Auth Email';
$p12Key = 'Your P12 Key File Path';
$targetCalendar = 'Your Calendar Name';
$aipoUser = 'Your Aipo User';
$aipoPasswd = 'Your Aipo Password';
$aipoIcalUrl = 'Your Aipo Ical URL';
動かす
/usr/bin/php /pathto/upload.php
↑で動くのでシェルファイルを作って cron.daily, cron.hourly とかに突っ込めば幸せになれるよ。
なお、とりあえず自分用に時間かけずに作ったので、ソースコードにはあんまりツッコミ入れないでね。
追記
PHP7 で使いたい人は、composer.json の guzzlehttp/guzzle, guzzlehttp/ringphp のバージョンをそれぞれ、6.2.2, 1.1.0 とかの新しいものに指定して、
composer update して下さい。
追記2
内容(説明)と場所も同期するようにしてみました。
https://github.com/fantasista21jp/aipo_to_gcal