ヤマムギ

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年、ユーザ企業システム部門通算9年、ITトレーナー2年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - Google, PHP, Web , , ,

ad

ad

  関連記事

ブログの記事が掲載されました(レバテック様)

少し前の話になりますが、登壇する側も聞く側も良い刺激を受けられる!勉強会のレポー …

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

headタグでapple-touch-iconを指定 [crayon-5c71e …

「POODLE」SSL3.0の脆弱性対応

各社が騒ぎ立てている「POODLE」 Padding Oracle On Dow …

GoogleAppsScriptを使ってGmailの本文を解析してSpreadSheetにエクスポートする

GoogleAppsScriptを使ってGmailの本文を解析してSpreadS …

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

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

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

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

個人のGoogleカレンダーの予定をPythonで取得する

Google Calendar Twilio ReminderのGoogleカレ …

Amazon Linux 上のWordPress PHPを5.3から7.2にバージョンアップ

このブログ、振り返ってみてみると、もう4年も続けているのかあと思いました。 1本 …

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

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

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

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