Edited at

AipoのスケジュールをGoogleカレンダーに同期表示する

More than 1 year has passed since last update.


AipoのスケジュールをGoogleカレンダーに同期表示する

これ単体で動きます。


PHP5.4から対応です。(Guzzle3使ってるので)


Google Developer Consoleでの設定


新規プロジェクトの作成

https://cloud.google.com/console へアクセスして、Google Calendar 連携用のプロジェクトを作成します

ss01.png


Google Calendar APIの有効化

APIタブでプロジェクトでGoogle Calendar APIを有効化します

ss03.png


認証情報の生成と取得

プロジェクトで利用するクライアントIDを作成します

ss05.png

クライアントIDのタイプは「サービス アカウント」になります。

Google_Developers_Console.png

鍵ファイル(~.p12)がダウンロードされるので保存しておくこと。


Google Calendarでの設定


Aipo用カレンダーを追加

スクリーンショット_2015-01-13_10.37.07.png

Google_カレンダー.png

カレンダー名を使うので覚えておくこと。


特定のユーザと共有に先ほど作ったクライアントIDのメールアドレスを入力。


(~@developer.gserviceaccount.com)


※[権限の設定]を「変更および共有の管理権限」または「予定の変更権限」に設定


同期ツールの設定


インストール

git clone git@github.com:fantasista21jp/aipo_to_gcal.git

cd aipo_to_gcal
composer install

https://github.com/fantasista21jp/aipo_to_gcal


設定

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