当事務所のスケジュール
今日(0000-00-00)から2週間分の業務状況をお知らせします。
業務状況
日付 | 午前 | 午後 |
---|
○は新規のご相談可能です。×は対応不可です。
このスケジュールについて
上記のスケジュール表は、Google Calendarから、毎日データを自動更新させています。
Google CloudのCalendar APIを使って、自動的にカレンダー情報をホームページに反映させています。
作り方を知りたい方は、ぜひこの後の文章もお読みください。
スケジュールの作り方
カレンダー情報をAPIで取得する場合、今回使ったGoogleの他に、MicrosoftのGraph APIもあります。(以前は、TimeTreeというアプリのAPIがあり、日本製で大変使いやすかったようなのですが、2023年12月にサービス終了予定とのことです)
GoogleのCalendar APIについて調べてみると、いろいろ種類があるのですが、今回は、freebusyというクエリを利用しました。
カレンダーの時間だけを抽出するので、カレンダーイベントのタイトルや場所等が外部流出する心配もありません。
また、freebusyは、OAuth認証も不要であるため、プログラムも簡単に作れます。
(手打ちのPHPファイルのみで、composerすら利用していません)
なお、セキュリティ上、apiキーや実行ファイルは、公開フォルダの外に置いています。
この技術でどんなことができるか?
当サイトの場合、午前・午後の予定だけ分かればよいので、上記のような簡素なスケジュールになりましたが、30分ごとの予定の有無を表示させることも可能です。
freebusyでネット上を探すと、「PHPでGoogle Calendar API を使って空き時間を抽出してみた」という記事が見つかります。この例では、30分ごとに予定を調べているようです。
また、calendar apiでOAuth認証を使えば、Google Calendarの情報を取得したり、編集したりもできます。
これを使えば、たとえば、会議室予約システムのようなものが作れると思います。
ただし、認証のプログラムは、ちょっとでも間違えると大変なことになるので、企業向けにプログラムを書いたことがあるプログラマに頼むようにしてください。
その他の注意点
Google Cloudを利用するために、Googleにクレジットカード情報を登録する必要があります。
ただし、2023年時点では、無料で利用できています。
(今後、みんなが利用して通信量が増えれば、課金されることになると思います)
当サイトの場合は、レンタルサーバーでcronが使えるため、毎日深夜にcalendar apiから情報を取得し、jsonファイルに出力しています。
このページでは、その静的なjsonファイルを参照するという仕組みにしました。
(この方法ならGoogleへの通信も1日1回で済むので)
このため、最大24時間は予定の反映が遅れる場合があります。ご注意ください。