ヤマムギ

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

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

  関連記事

GoogleAppsScriptを使ってGmailをSpreadSheetにエクスポートする

GoogleAppsScriptを使ってGmailをSpreadSheetにエク …

言語スパムのアクセスをAnalyticsで除外した(2017/1/9現在)

Analyticsの言語に見慣れないのが出てたのでフィルタで除外対応。 Vita …

WordPressにログインを強制して記事ごとのアクセス制限もする

WordPressを限定された組織内で使いたいとした場合に下記を実現したいと思い …

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

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

自転車でナビ+記録出来るアプリ+ホルダー+バッテリー試してみた

目的 記録を蓄積して振り返りやる気を継続する 飽きないように単調にならないように …

Mac OS X Yosemite にnode.js + mongodb 環境を作る

node.jsインストール nodejs.orgサイトで「INSTALL」ボタン …

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

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

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

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

WordPressの記事を公開日時に関係なくソート順を変更する

PostMash Customを使う WordPressのプラグインでPostM …

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

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