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

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

  関連記事

ホームページやサイトがiPhone,iPadのホーム画面に追加された時のアイコンを設定しておく

headタグでapple-touch-iconを指定 [crayon-58fed …

Redmine 3.0.0 のメールサーバーでGoogleApps SMTPサーバーを利用する

Redmineのメール通知サーバーとしてGoogleAppsを使用する方法です。 …

sitemap.xml(sitemap-misc.xml)とrobots.txtを設置する

起きたら結構な雨でしたので、とりあえずサーバのエラーログを眺めていると、goog …

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

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

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

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

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

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

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

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

ホームページ、自作サイトにアメブロの新着情報を掲載する

MagipieRSSを使用 なので下記サイトでダウンロード http://mag …

C#でOpenWeatherMap APIを使って天気情報を取得する

C#でOpenWeatherMapAPIを使って現在の天気を取得してみました。 …

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

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