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を生成する。
[php]
$calId = "<カレンダーIDの@より前>%40group.calendar.google.com";
$feedURL = "http://www.google.com/calendar/feeds/$calId/public/basic?futureevents=true&orderby=starttime&sortorder=ascending";
[/php]
カレンダーIDはGoogleカレンダーの詳細ページで確認する。
ついでにGoogleカレンダーは共有設定で閲覧権限で一般公開しておく。
@マークは一応%40にエンコードする。
※2014/12/13 「full」が使えなくなっていたので「basic」に変更。
- futureevents — 活動予定などであれば、未来のスケジュールのみを取得するのでtrue
- orderby — ソート項目。開始日時順にする。
- sortorder — 昇順(ascending)、降順(descending )の指定。
ちなみに活動記録などで過去のみを取得する場合は「start-max=date(“Y-m-d”) . ‘T00:00:00’」のようにstart-maxパラメータを使う。
これにより、データを修正する事なく、日付が変われば、自動で活動予定ページから活動記録ページへ情報が遷移する。
サークルの活動スケジュールと記録や、バンドのライブ予定と記録なんかに使えるのではと思っとります。
XMLを処理する
[php]
$sxml = simplexml_load_file($feedURL);
foreach ($sxml->entry as $entry) {
$title = stripslashes($entry -> title);
$content = stripslashes($entry -> content);
echo ‘<span class="xxxx">’ $title . ‘<br/>’ . $content . ‘</span>’;
}
[/php]
- 予定のタイトル — $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
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター3年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
ブログの記事が掲載されました(レバテック様)
少し前の話になりますが、登壇する側も聞く側も良い刺激を受けられる!勉強会のレポー …
-
-
Amazon Linux 上のWordPress PHPを5.3から7.2にバージョンアップ
このブログ、振り返ってみてみると、もう4年も続けているのかあと思いました。 1本 …
-
-
RedmineにGoogleAppsアカウントでログイン出来るようにする
RedmineのログインをGoogleアカウントで出来るように[redmine_ …
-
-
Twilio APIでOpenWeatherMap APIで取得した天気情報を毎朝モーニングコールする
OpenWeatherMap APIのJsonから取得した気温と天気の情報を、T …
-
-
GoogleAppsScriptを使ってGmailをSpreadSheetにエクスポートする
GoogleAppsScriptを使ってGmailをSpreadSheetにエク …
-
-
ホームページやサイトがiPhone,iPadのホーム画面に追加された時のアイコンを設定しておく
headタグでapple-touch-iconを指定 [html] [/html …
-
-
sitemap.xml(sitemap-misc.xml)とrobots.txtを設置する
起きたら結構な雨でしたので、とりあえずサーバのエラーログを眺めていると、goog …
-
-
ライブ配信のカレンダーをGoogle Apps Scriptとかで作りました
ライブ配信がまとまっているカレンダー欲しいなあと思いまして。 まとめようと思いま …
-
-
Mac OS X Yosemite にnode.js + mongodb 環境を作る
node.jsインストール nodejs.orgサイトで「INSTALL」ボタン …
-
-
Google関連のAPIを試すためのGoogleSiteを作ってみました
組み込み機能で出来る事は組み込み機能で と思いまして、Googleサイトを試験的 …