PHP工房トップ

HOME > GoogleカレンダーAPIの仕様変更に伴う祝日自動取得のコード修正方法について

GoogleカレンダーAPIの仕様変更に伴う祝日自動取得のコード修正方法について

詳細について

2014/11/17のGoogleカレンダーAPIの仕様変更に伴い、2014/11/25以前のバージョンでは祝日データが自動取得できなくなりました。そのため2014/11/25以前にダウンロードし、現在設置中のプログラムは2015年の祝日データが取得できません。また2015年1月1日午前0時以降設置サーバーによってはページ上にWarningエラーが表示されることがあります。 大変申し訳ございませんが、ご対応のほど宜しくお願い致します。

該当プログラム

2014/11/26以降にダウンロードされたものは問題ありませんのでこのページは無視してOKです。
見分け方は設定ファイル(config.php)のログイン情報の設定箇所の下に
「GoogleAPIからの祝日の自動取得を行うか(0=しない、1=する)」
があれば、最新版のため問題ありませんが、無い場合には対象となります。

祝日データファイルのダウンロード

まずは画面上にWarningエラーが表示される可能性の対処をお願いします

まずは本年用の祝日データファイルを以下よりダウンロードいただき、dataディレクトリ内にそのままアップ下さい。これにてひとまずは解決となります。将来の分も用意していますが、あまり先のものですと祝日が変わるリスクも有ります。また祝日の整合性を保証するものではありませんのでご了承下さい。

2016年用であれば「2016_holiday.dat」のファイル名であればOKということです。これをサーバー上のdata/内にそのままアップして下さい。

※それぞれのファイルには当年、去年、来年分の3年分の休日データが記述されています。
※ファイル内をご覧いただくと分かりますが、単純に祝日の日付が記述されているだけですので、ご自身で直接編集しても構いません、

予め数年分のファイルをアップいただいても構いませんが、祝日が変更になる可能性もあります。自動取得をご希望の場合には下記修正方法に従って修正下さい。(自動取得を行うにはGoogleAPIキーの取得が必要になります。もちろん無料で取得できます)

今後の対処法について

今後の運用については3つの選択肢があります。

1,毎年、または数年分のデータファイルを定期的にダウンロードして手動でアップロードする。
一生放置というわけにならないため、手間はかかりますが簡単です。

2,コードを修正して自動取得を続ける
一度行えば、以降の更新は不要になります。修正方法は以下にまとめております。

3,最新版を使用する
最新版では祝日自動取得を行うかどうかを選択できます。デフォルトはOFFです。祝日の設定自体が不要であれば、最新版に切り替えるのが最も手っ取り早いかもしれません。

コード修正方法

※GoogleAPIのキーが必ず必要になります。キーの取得方法は以下ページにまとめておりますのでご参考下さい。
GoogleカレンダーAPIキーの取得方法

1,関数の書き換え

営業日カレンダー関連はconfig.php、カレンダー連動予約フォームの場合にはfunction.phpの1117行目付近以下の記述(関数)

※ファイル内を「GoogleカレンダーAPIから祝日を取得」で検索すれば見つかります。

以下にまるっと書き換えて下さい。コピペでOKです。(クリックすると全選択されます)

2,設定ファイルにAPIキー設定用の変数を記述する

config.phpに以下すべてを追記(コピペ)下さい。場所はどこでも良いですが各種設定等が記述されている付近に追記下さい。また同時にAPIキーを記述して下さい。

以上となります。APIキーを設定し、正常に動作するかご確認下さい。
確認方法は、サーバー上のdataディレクトリ内の「現在の西暦_holiday.dat」のファイルを一時的にリネームして、管理画面、またはカレンダー表示ページにアクセスしてみてください。正常であれば、dataディレクトリ内に「現在の西暦_holiday.dat」ファイルが自動生成されているはずです。

GoogleカレンダーAPIキーの取得手順

以下ページにまとめましたのでご参考下さい。

GoogleカレンダーAPIキーの取得方法

自動取得のタイミングについて

Googleから祝日を取得するタイミングは初回ページアクセス時、及び年が変わった時点の最初のページアクセス時(管理画面、またはユーザ閲覧側ページ)です。現在の年とその前年、翌年の祝日を取得し、ファイルに保存します。(ファイル名「その年の西暦_holiday.dat」)
※稀にサーバーのphp.iniの設定により生成されない場合があります。
※Googleの仕様上、仕様が変更になって取得ができないこともあり得ますのでご了承下さい。その場合設定ファイルでこの機能をOFFにすることで解決します。
※Googleの仕様上、ある祝日が正確な日付ではない可能性が稀にあるかもしれません。その場合直接ファイルを編集することもできます。

PHPメールフォーム(無料版)

PHPメールフォーム(有料版)

新着情報・更新履歴CMS(無料版)

投票・アンケートシステム(無料版)

テロップCMS(無料版)

写真ギャラリーCMS(無料版)

営業日カレンダーCMS(無料版)

営業日カレンダーCMS(有料版)

カレンダー予約フォーム(無料版)

カレンダー予約フォーム(有料版)

リンク集ページCMS(無料版)

アクセスカウンター(無料版)

ダウンロードカウンター(無料版)

メールフォームの各種カスタマイズならお任せ下さい
業務効率化が可能なPHPオリジナルCMS制作します

役立つかも?なもの

豆知識や役立ち事など

PHPについて

各種情報