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
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
ライブ配信のカレンダーをGoogle Apps Scriptとかで作りました
ライブ配信がまとまっているカレンダー欲しいなあと思いまして。 まとめようと思いま …
-
-
PostmanでTwitter API 1.1を使う
AWS Lambda(Python)からTwitterに投稿するで取得した認証情 …
-
-
Googleカレンダーの予定をV3 APIでPHPからJSONを取得してWebページに表示する
Googleカレンダーを使って管理しているライブスケジュールを日付によって、 未 …
-
-
EC-CUBE 4のレイアウトをカスタマイズ
EC-CUBEのデフォルトトップ画面 EC-CUBEインストール後、トップ画面が …
-
-
「Cloud Vision Api & Tensorflow勉強会」に行ってきました
「Cloud Vision Api & Tensorflow勉強会」に行 …
-
-
ホームページやサイトがiPhone,iPadのホーム画面に追加された時のアイコンを設定しておく
headタグでapple-touch-iconを指定 [html] [/html …
-
-
PHP 共通ヘッダ、フッタの内容をページによって動的に変更する
共通ヘッダ、フッタ それぞれ必要な内容を書いたheader.php、footer …
-
-
Googleナレッジパネルの申請が承認されました
今年の4/13に「Googleナレッジパネルの認証を受けるために申請してみた」が …
-
-
Davinci Resolveで本編動画とは別にTwitter動画を作る
Twitter動画の時間 Youtubeでオンライン勉強会のデモ動画をアップして …
-
-
ブログの記事が掲載されました(レバテック様)
少し前の話になりますが、登壇する側も聞く側も良い刺激を受けられる!勉強会のレポー …