Google Calendar のデータをXMLに加工して monthly.js に 流し込む

Google Calendar のデータをXMLに加工して monthly.js に 流し込むぱわふる所属している草野球チームのHP制作を担当していて、「スケジュールを載せたい」という要望が来ました。数週間ぐらい前に「そういえば何かカレンダーをキレイに表示させるJSライブラリがあったよなぁ」と「monthly.js」思い出して、Googleカレンダーとこれを使って表示させることにしました。

練習場所まで全世界に公開するのも気持ちが悪いので、Googleのカレンダーは「非公開」の設定のままで、どうにか情報を取得するすべはないものかと調べると、OAuth2なGoogle Calendar API というAPIを使えばいいと載っていました。( OAuth2じゃないAPIもあるっぽいですが、実装が複雑になるのでOAuth2の方式がいいよみたいな情報が公式ドキュメントに書かれていた。うろ覚え。)

しかし、肝心のPerlの解説がない。(仕事ではRubyがメインですが、草野球のホームページぐらいの規模ならPerlで書きたい。)ライブラリ自体は「Google::API::Client」という名前でCPANに登録されているのでこれを使うことにしました。

client_secret.json みたいなファイルをGoogle APIのページから取得すると(詳細は「celient_secret.json google」でググッて)あとは、以下のコードで、初回時のみ手動で認証してリフレッシュトークンを取得すると、それ以降はよしなにしてくれます。(ずっとアクセスを待ち受ける必要があるWebアプリにも組み込めます。)

以下のようにXMLが出力されます。

Googleカレンダーが終了時刻それ自体はイベントの期間に含めない(不等号に「=(イコール)」が付くかどうかの違いのようなもの) のに対して、monthly.js は終了時刻それ自体をイベントの期間に含めるという違いがあるため、endtime(enddateじゃなくて)がない場合は、enddate を一日早めるという面倒な処理が追加で必要になります。(上記のコードではそれが追加されていないので注意。)

上記の面倒な処理を終えて「monthly.js」のマニュアルを読んでWebアプリに組み込むと、以下のように美しく表示できるようになります。ちなみに、高速で「月」を切り替えるとイベントが移動したり増殖したりする「monthly.js」のバグを作り終えてから発見しました。(ぎりぎりクリティカルなバグでもないかというあんばいですが…)

スクリーンショット 2016-02-18 0.34.09

スクリーンショット 2016-02-18 0.34.24

お疲れ様です。( ´Д`)=3


「Google Calendar のデータをXMLに加工して monthly.js に 流し込む」への5件のフィードバック

  1. http://chorus-osensis.pl/dlaczego-firmy-wybieraja-leasing.html
    Buying a new or used automobile might be a difficult procedure should you not know what you will be performing. By teaching yourself about auto buying prior to deciding to go to the car dealership, you can make points less difficult for your self. The following advice can help the next purchasing getaway become more enjoyable.

    Generally deliver a technician alongside when buying a whole new car. Car merchants are notorious for offering lemons and you may not want to be their up coming sufferer. When you can not get yourself a technician to consider automobiles together with you, at the very least make sure that you have him look at your ultimate choice before you buy it.

    Know your limitations. Before you begin buying for your auto or truck, make a decision how much you can manage to pay out, and stay with it. Don’t neglect to include interest in your estimations. You are likely to shell out all around 20 % as a payment in advance at the same time, so be well prepared.

    Before seeing a dealer, know what sort of car you would like. Investigation all of you choices just before buying so you can determine what works best for your financial allowance and household requirements. Shop around to find out exactly how much you need to be paying for any prospective vehicle.

    Before you sign any commitment spend some time to read each line, such as the small print. If you find nearly anything outlined that you simply do not understand, tend not to sign up until you have an respond to that you just recognize. Unsavory salesmen can use an agreement to put numerous charges which were not talked about.

    If you maintain the previous suggestions at heart the next time which you go purchasing a vehicle, you will end up very likely to obtain a good offer. Getting a auto lacks to become head ache. Just use the tips with this write-up and you can receive the car you would like with a very good selling price.

  2. order cialis cheap
    buy cialis online australia
    cialis black 800mg pills
    cheapest cialis prescription
    buying cialis online canada

    buy cialis online cheap
    buy authentic cialis
    cialis pills australia
    cheapest cialis and viagra
    how to split pills cialis
    cheap cialis overnight
    cialis sale uk
    buy cheap cialis usa visa
    buy cialis with paypal
    cheap cialis canada
    buy cialis online uk
    can cialis pills cut half
    buy cialis no prescription in uk
    buy cialis online in canada
    order cialis professional online
    cialis canada mail order
    can you really buy cialis online
    where can i buy cialis online in australia
    viagra cialis pills
    discount generic cialis 20mg
    can you take 2 cialis pills
    how to order cialis
    cheap cialis au

コメントを残す

メールアドレスが公開されることはありません。