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ナレッジパネルの申請が承認されました
今年の4/13に「Googleナレッジパネルの認証を受けるために申請してみた」が …
-
trafficbot.liveからのスパムアクセス
ある日のGoogleAnalyticsで、5,000を超えるページビューがtra …
-
Redmine 3.0.0 のメールサーバーでGoogleApps SMTPサーバーを利用する
Redmineのメール通知サーバーとしてGoogleAppsを使用する方法です。 …
-
自転車でナビ+記録出来るアプリ+ホルダー+バッテリー試してみた
目的 記録を蓄積して振り返りやる気を継続する 飽きないように単調にならないように …
-
Google関連のAPIを試すためのGoogleSiteを作ってみました
組み込み機能で出来る事は組み込み機能で と思いまして、Googleサイトを試験的 …
-
個人のGoogleカレンダーの予定をPythonで取得する
Google Calendar Twilio ReminderのGoogleカレ …
-
動画間の広告を飛ばすのが面倒になったのでYoutube Premiumに加入しました
テレビのCMは全然見る方なんですが、Youtubeの動画の間の広告ってなんか流し …
-
redmine_omniauth_googleプラグインをRedmine3.0.0で動くようにする
redmine_omniauth_googleプラグインをインストールしたところ …
-
WordPressの記事を公開日時に関係なくソート順を変更する
PostMash Customを使う WordPressのプラグインでPostM …
-
ホームページ、自作サイトにアメブロの新着情報を掲載する
MagipieRSSを使用 なので下記サイトでダウンロード http://mag …