yamamanx

growing hard days

*

Googleカレンダーの予定をPHPからXMLで取得してWebページに表示する(現在廃止されたAPIなので使えません)

      2016/02/07


ご注意

※下記の記事で使用していたAPIは2016年現在使用出来なくなっています。
今は、V3 Calendar APIで取得する必要がありますので、改めて記事を上げ直します。
この記事は昔はこうしてました、というようなアーカイブ記事の位置づけとして読んでいただければ幸いです。

V3 Calendar APIで取得している記事はこちらです。
Googleカレンダーの予定をV3 APIでPHPからJSONを取得してWebページに表示する

本文

5年前ぐらいに作ったWebサイトで、管理者がGoogleカレンダーなら更新出来るって事で、それを表示するようにした事を思い出したので備忘録。

GoogleカレンダーにXML形式でアクセスする

フィードURLを生成する。

カレンダーIDはGoogleカレンダーの詳細ページで確認する。
ついでにGoogleカレンダーは共有設定で閲覧権限で一般公開しておく。
@マークは一応%40にエンコードする。

※2014/12/13 「full」が使えなくなっていたので「basic」に変更。

google-cal-id
URLのパラメータは以下。

  • futureevents — 活動予定などであれば、未来のスケジュールのみを取得するのでtrue
  • ちなみに活動記録などで過去のみを取得する場合は「start-max=date(“Y-m-d”) . ‘T00:00:00’」のようにstart-maxパラメータを使う。
    これにより、データを修正する事なく、日付が変われば、自動で活動予定ページから活動記録ページへ情報が遷移する。
    サークルの活動スケジュールと記録や、バンドのライブ予定と記録なんかに使えるのではと思っとります。

  • orderby — ソート項目。開始日時順にする。
  • sortorder — 昇順(ascending)、降順(descending )の指定。

XMLを処理する

  • 予定のタイトル — $entry -> title
  • 場所 — $entry -> children(‘gd’, true) -> where -> attributes() -> valueString
  • 説明 — $entry -> content
  • 開始日時 — $entry -> children(‘gd’, true) -> when -> attributes() -> startTime

ざっくりとしとりますが、以上です。

※2014/12/13 「full」を「basic」に変更したため、タイトル(title)以外が全てcontentに含まれたので、そのままで使うか、文字列を処理してなんとか値を取るしかなさそう。

contentの例:
期間: 2015/01/17 (土) 18:00~22:00
JST<br />

<br />場所: xxxxxxx
<br />予定のステータス: 確定
<br />予定の説明: xxxxxxxxxxxxxxxxx

@yamamanx
開発ベンダー5年、ユーザ企業システム部門通算8年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

 - Google, PHP, Web , , ,

ad

ad

Message

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

  関連記事

twilio-openweathermap
Twilio APIでOpenWeatherMap APIで取得した天気情報を毎朝モーニングコールする

OpenWeatherMap APIのJsonから取得した気温と天気の情報を、T …

google_calendar_api
Googleカレンダーの予定をV3 APIでPHPからJSONを取得してWebページに表示する

Googleカレンダーを使って管理しているライブスケジュールを日付によって、 未 …

6807_normal_1445518290_gdgkobe-badge
「Cloud Vision Api & Tensorflow勉強会」に行ってきました

「Cloud Vision Api & Tensorflow勉強会」に行 …

Admin_SDK_Directory_Service_-_Google_Apps_Script_—_Google_Developers
Google Apps ScriptでAdmin SDK Directory Serviceを使ってユーザの最終ログイン情報一覧を出力する

GoogleAppsで使わなくなったアカウントを確認する方法として、最終ログイン …

googlesite
Google関連のAPIを試すためのGoogleSiteを作ってみました

組み込み機能で出来る事は組み込み機能で と思いまして、Googleサイトを試験的 …

chromium_icon
chromium OS をインストールするためのUSBをMacで作る

別にChromeBookを購入するお金をけちるわけではないのですが。 chrom …

Redmine-Logo-CyberSprocket-Composite-300x300-png8 copy
redmine_omniauth_googleプラグインをRedmine3.0.0で動くようにする

redmine_omniauth_googleプラグインをインストールしたところ …

Admin_SDK_Directory_Service_-_Google_Apps_Script_—_Google_Developers
Google Apps ScriptでAdmin SDK Directory Serviceを使ってグループメンバー情報を出力する

GoogleAppsのGoogleGroupをメーリングリストとして使っている人 …

icon-php
PHP 共通ヘッダ、フッタの内容をページによって動的に変更する

共通ヘッダ、フッタ それぞれ必要な内容を書いたheader.php、footer …

chrome-remote
Chrome リモートデスクトップを使ってみる

自宅のMacをリモートで操作したい 外出用PCはWindows 8 とLinux …