「Google Calendar」と連携し、お問い合わせフォームなどで送信された内容を任意の Google Calendar に登録する拡張アプリです。
Google Calendar for a-blog cms
- a-blog cms >= Ver. 3.1.0
- php >= 7.2.5
次のステップで a-blog cms と Google Calendar を連携します。
- Google Calendar と連携するプロジェクトを設定
- ClientID JSON の取得
- ClientID JSON を CMS 側に登録
Google API Consoleにアクセスし、a-blog cms と連携するプロジェクトを設定します。
Google API Console で新しいプロジェクト、または既存のプロジェクトを選択します。
新規でプロジェクトを作成した場合、または、Google Calendar API を有効化していないプロジェクトの場合は、プロジェクトの管理画面で ライブラリ->API ライブラリ に遷移し、Google Calendar API を有効化します。
続いて、a-blog cms と連携するプロジェクトの認証情報を作成します。
プロジェクトの管理画面で OAuth クライアント ID を選択し、OAuth クライアント ID を作成します。
OAuth クライアント ID 作成時に設定しなければならない項目は、アプリケーションの種類、名前、承認済みのリダイレクト URL です。
ここでは、下の画像のようにアプリケーションの種類を「ウェブアプリケーション」、承認済みのリダイレクト URL は「ドメイン名/bid/(現在使用しているブログの BID)/admin/app_google_calendar_callback/」と設定します。名前は任意のもので構いません。
作成が完了したら、画像の赤丸で囲まれた場所をクリックします。ここで、JSON ファイルがダウンロードされますので、このファイルを a-blog cms が動いているサーバにアップロードします(ブラウザからアクセスできないドキュメントルートより上の階層にアップロードすることが望ましいです)。
a-blog cms において拡張アプリが HOOK 処理を行えるように,config.server.php の設定を変更します。
define('HOOK_ENABLE', 1);
extension/plugins にGoogle Calendar for a-blog cmsをアップロードし、管理画面 > 拡張アプリより、 Google Calendar をインストールします。インストール完了後、管理画面 > Google Calendar より Google Calendar の管理画面に移動します(下の図)。ここで、Client ID Key Location に先ほどアップロードした JSON ファイルが存在する場所を表す絶対パスを入力し、「保存」をクリックした後、「認証」をクリックします。認証に成功すると、「認証」の表示が「認証済み」に変化します。
次に、Google Calendar と連携するフォームの設定を行います。管理画面 > フォーム より、連携したいフォームの設定画面に移動します。「Google Calendar 設定」という項目があるので、ここにフォームが送信された時にカレンダーに登録したい値を設定します。例えば入力する値は次のように設定します。
この設定では、フォームが送信された際に、設定した Calendar ID のカレンダーに、イベント名「サンプルイベント」、場所「名古屋市中村区名駅 3-18-5 モンマートビル 5F」、説明「みんなで楽しめるイベントです。」、開始日時「2023/04/12 12:00」、終了日時「2023/04/12 14:00」、タイムゾーン「Asia/Tokyo」としてイベントが追加されます。
カレンダーに登録される値をフォームの内容に応じた値にすることができます。例えば、次のように設定します。
この例では、イベント名「{description} について」、開始日付「{postal-code}{address1}{address2}」、説明「このイベントの内容は {inquiry} です。」のイベントが追加されます。ここで、{}で囲まれた部分には{}内の名前に対応するカスタムフィールド名のフォーム送信時の値が挿入されます。また、時間設定にもカスタムフィールドの値を用いることができます。その際は、右の「カスタムフィールドの値を使用する」チェックボックスにチェックしてください。
「開始日付」及び「タイムゾーン」は必須の入力項目となります。それ以外の項目については任意ですが、記述方法によって追加されるイベントの終了時刻が異なります。
- 「開始日付」及び「開始時間」が入力されており、「終了日付」、「終了時間」が入力されていない場合
- カレンダーに登録される終了日時は、「開始日付」、「開始時間」と同じになります
- 「開始日付」が入力されており、「開始時間」、「終了日付」、「終了時間」が入力されていない場合
- カレンダーに登録されるイベントは「開始日付」の終日イベントになります
- 「開始日付」及び「終了日付」が入力されており、「開始時間」、「終了時間」が入力されていない場合
- カレンダーに登録されるイベントは「開始日付」から「終了日付」までの終日イベントになります
- この際、終了日付も含むイベントを登録したい場合は、終日日付+1 日とすることに注意してください
- 「終了日付」及び「終了時間」は、「+yy-MM-dd」及び「+HH:dd:ss」と記述し、それぞれ「開始日付」、「開始時刻」に対しての経過時間を設定できます
参加者欄にはメールアドレスを指定します。イベントが追加された時、ここに記入されたメールアドレスがイベント参加者としてカレンダーに登録されます。この際、Google Calendar の機能で参加者にメールによる通知が行われます。また、参加者として追加されたメールアドレスが Gmail の場合、そのアカウントのカレンダーにイベントが自動的に追加されます。
- 参加者は複数追加することができます。その際は「,」でメールアドレスを区切ってください
- (例:{email1}, {email2})