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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
共有Googleカレンダーを自分のカレンダーに追加してiPhoneに同期する
配信ライブカレンダーという共有カレンダーを作りました。 このようなGoogleの …
-
-
sitemap.xml(sitemap-misc.xml)とrobots.txtを設置する
起きたら結構な雨でしたので、とりあえずサーバのエラーログを眺めていると、goog …
-
-
言語スパムのアクセスをAnalyticsで除外した(2017/1/9現在)
Analyticsの言語に見慣れないのが出てたのでフィルタで除外対応。 Vita …
-
-
WordPressの記事を公開日時に関係なくソート順を変更する
PostMash Customを使う WordPressのプラグインでPostM …
-
-
Davinci Resolveで本編動画とは別にTwitter動画を作る
Twitter動画の時間 Youtubeでオンライン勉強会のデモ動画をアップして …
-
-
Twilio APIでOpenWeatherMap APIで取得した天気情報を毎朝モーニングコールする
OpenWeatherMap APIのJsonから取得した気温と天気の情報を、T …
-
-
ブログの記事が掲載されました(レバテック様)
少し前の話になりますが、登壇する側も聞く側も良い刺激を受けられる!勉強会のレポー …
-
-
Linux Mint 17 MATE 64bit にAptana Studio 3をインストールして日本語化
JDKのインストール 過去記事「Linux Mint 17 MATE 64bit …
-
-
Googleナレッジパネルの申請が承認されました
今年の4/13に「Googleナレッジパネルの認証を受けるために申請してみた」が …
-
-
GoogleAppsScriptを使ってGmailの本文を解析してSpreadSheetにエクスポートする
GoogleAppsScriptを使ってGmailの本文を解析してSpreadS …
