以前に
GCALDaemonを使ったAipoとGoogleカレンダーの一方通行同期でエラー
という記事をかいた後も、あいかわらず同期できなくて困っていますと、記事をみてくださった、ぐらさん様からコメントをいただきました。
自家製のRubyスクリプトで動かしているとのこと。
そして、ありがたいことに、ぐらさん様が作成したRubyスクリプトを頂戴することができました。
そして・・・いろいろなれないサーバいじりなどをした結果、ついに同期することができました!
というわけで、この喜びを多くの方に分かち合うために、ぐらさん様から許可をいただき、Aipo→Googleカレンダーへの同期のためのプログラムを公開させていただきます。
それが、こちらです。↓↓
ダウンロード: aipotogcal
※こちらは「ぐらさん」様より許可をいただき公開させていただいております。この場を借りて感謝を表明いたします。
m( _ _ )m
※ご承知とは思いますが、使用は自己責任でお願いしますね。
また、私が稼働させるまでの手順を下記に記述しました。
参考になれば幸いです。
Googleサービスアカウントの取得から秘密キーの入手
このプログラムでは、ブラウザを介さずにGoogleのAPIにアクセスするために、Googleのサービスアカウントを取得する必要があります。
- Google Developers Consoleにアクセスする。
https://console.developers.google.com/ - プロジェクトを作成→任意の名前とIDを入力して作成
- 作成されたプロジェクトから、APIと認証の「認証情報」を開く
- OAuthから「新しいクライアントIDを作成」→サービスアカウントを選択して作成
- 秘密キーパスワードが表示されるのでメモ(※注意。一度しか表示されません)(※1)
- 秘密キーの表示と同時にファイルがダウンロードされる。このファイルが「秘密キー」となるので保存(※2)
- 作成したサービスアカウントのメールアドレスなどが表示されるので覚えておく(※3)
Googleカレンダーの設定
Aipoから同期させたいGoogleカレンダーに、プログラムからアクセスが出来るようにします。
- Googleカレンダーにアクセス
- 同期させたいカレンダーを選択(もしくは作成)
- カレンダーの共有設定から、上記のサービスアカウントで作成された「メールアドレス」を共有に加える(私は「変更および共有管理権限」で加えましたが、ひょっとしたら「変更権限」だけでよいかもしれません)
- カレンダーの設定画面から「カレンダーのアドレス」の項目に表示されている「カレンダーID」を覚えておく(※4)
プログラムの設定
Googleカレンダー側には設定ができたので、次はAipo側の設定です。
- Aipoの動いているサーバに「aipotogcal」をアップロード(サーバの権限によってはAipoと別のサーバでも良いかもしれません)
- 同じく上記※2で保存した秘密キーファイルをアップロード
- 「api.yaml」を編集します。
- key_pass:上記※1の秘密キーパスワード
- key_file:上記※2の秘密キーファイルの場所を記述(サンプル:/usr/local/aipotogcal/************.p12)
- cal_id:上記※4のカレンダーID
- issuser:上記※3のメールアドレス
- timezone:通常は”Asia/Tokyo”で問題ないはず
- ical_uri:AipoのiCalのURL(通常は、https://********.***/aipo/ical/calendar.ics)のはず
- aipo_user:Aipoのユーザ名
- aipo_pass:Aipoのパスワード
※
あとは、Rubyでちゃんと実行できるか確かめた上でCRONで定期実行させるだけです。
設置時に躓いたことメモ
※私の場合はAipoサーバ環境に問題があり、AipoのHTTPレスポンスヘッダーに文字コード指定がないために
from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
というエラーがでました。本来はサーバ設定で解決すべき問題なのですが、そこまでの知識が及ばず…
対策として、66行目あたりに
ics.force_encoding(“UTF-8”)
という記述を追加して無事動かしました。本来はサーバ側の設定でHTTPヘッダを適切に処置出来るようにするのが正解だと思います。
※実は一番苦労したのが私の環境にRubyが入っていなかったために、Rubyのインストールをするところでした。
これはいろいろな環境があって一口に言えないためにあえて今回は書きません。
下記等を参考にインストールしました。
(Rubyインストールに参考になったサイト)
http://d.hatena.ne.jp/yk5656/20140324/1396158118
http://centos.bungu-do.jp/archives/000294.html
kyamab へ返信する コメントをキャンセル