title 場所 -- $entry" /> title 場所 -- $entry" />

ヤマムギ

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を生成する。
[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」に変更。

google-cal-id
URLのパラメータは以下。

  • futureevents — 活動予定などであれば、未来のスケジュールのみを取得するのでtrue
  • ちなみに活動記録などで過去のみを取得する場合は「start-max=date(“Y-m-d”) . ‘T00:00:00’」のようにstart-maxパラメータを使う。
    これにより、データを修正する事なく、日付が変われば、自動で活動予定ページから活動記録ページへ情報が遷移する。
    サークルの活動スケジュールと記録や、バンドのライブ予定と記録なんかに使えるのではと思っとります。

  • orderby — ソート項目。開始日時順にする。
  • sortorder — 昇順(ascending)、降順(descending )の指定。

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入門ガイド」という本を書きました。

 - Google, PHP, Web , , ,

ad

ad

  関連記事

Amazon Linux 上のWordPress PHPを5.3から7.2にバージョンアップ

このブログ、振り返ってみてみると、もう4年も続けているのかあと思いました。 1本 …

Twilio APIでOpenWeatherMap APIで取得した天気情報を毎朝モーニングコールする

OpenWeatherMap APIのJsonから取得した気温と天気の情報を、T …

個人のGoogleカレンダーの予定をPythonで取得する

Google Calendar Twilio ReminderのGoogleカレ …

Googleナレッジパネルの申請が承認されました

今年の4/13に「Googleナレッジパネルの認証を受けるために申請してみた」が …

動画間の広告を飛ばすのが面倒になったのでYoutube Premiumに加入しました

テレビのCMは全然見る方なんですが、Youtubeの動画の間の広告ってなんか流し …

使っていないCSSセレクタをChrome DevToolsのCoverageで確認しました

使っていないCSSセレクタを確認しようと、Chrome DevToolsのCov …

ホームページ、自作サイトにアメブロの新着情報を掲載する

MagipieRSSを使用 なので下記サイトでダウンロード http://mag …

RedmineにGoogleAppsアカウントでログイン出来るようにする

RedmineのログインをGoogleアカウントで出来るように[redmine_ …

Youtube動画のダウンロード

Youtubeにアップロードした動画のダウンロード方法です。 以前はこんな機能が …

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

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