a-blogの問い合わせフォーム内容をkintoneへ自動送信
最近は、WEBフォームで入ってきた情報をkintoneに登録して管理している方も多いのではないでしょうか?
a-blog cmsで作成したWEBフォームのデータをCSVでダウンロードし、kintoneに登録する事は出来ますが、ちょっと手間がかかりますよね。
直接kintoneにデータを送る事が出来れば、作業が効率化できるのに・・・と思われてる方!
実は、a-blog cmsもkintone との連携が可能なんです!
WordPressにはkintone連携のプラグインがありますが、同様にa-blog cms の「拡張アプリ」の仕組みを利用して、お問い合わせで送られた内容をkintoneに自動的に保存するアプリを作成しました。
a-blog cms からさまざまなサービスへ連携するための拡張アプリは公式からも提供されていて(拡張アプリ一覧)、インストールすればSlackやGoogle Sheetsといった外部サービスとの連携も行うことができます。
うちのサイトでもやってみたい!詳細を聞いてみたい!という方は、ぜひお気軽にお問い合わせください。
お問い合わせ
以下、kintone 連携ができるまでの作業内容ですが、備忘録として記載しておきます。
旧バージョン用(a-blog cms ver2.7以前)作成
最初に対応したのは、a-blog旧バージョン用です。
とはいえ、a-blog cms 開発元のアップルップル様より、ほぼ完成されたソースファイルをいただきました。
対応したのは以下のみです。
- REST処理用ライブラリを変更(HTTP_Request→HTTP_Request2へ)
- チェックボックス(複数選択項目)、添付ファイルのアップロードに対応
- エラー発生時にメールを送信
a-blog cms ver2.8でファイル構成が変更
a-blog cms ver2.8〜で拡張アプリの構成が変更になりました。
【ver2.7以前】
ソースファイルの置き場所:
php/AAPP/(kintone拡張アプリ用フォルダ)
内容は任意
Hook:
php/ACMS/User/Hook.php に追記
管理画面用ファイル:
themes/system/admin/app/(kintone用フォルダ)
【ver2.8以降】
ソースファイルの置き場所:
extension/plugin/(kintone拡張アプリ用フォルダ)
ServiceProvider.phpファイル必須
Hook:
extension/plugin/(kintone拡張アプリ用フォルダ)/〜にHookクラスを用意(名前は任意)
ServiceProvider.php ファイルにHookクラスを登録
管理画面用ファイル:
ServiceProvider.php ファイルに置き場所を定義
新バージョンのいいところ
- 1パッケージで管理 - 拡張アプリ関連のファイルをひとまとまりで配置できる
- a-blog本体のファイルを触らなくてもいい!(configファイルの設定は必要ですが)
- 管理画面で「インストール」+有効化/無効化ができるように!
- kintone設定画面を別メニューから選択する必要があったのが、「フォーム設定画面」内に表示することができるように!
バージョンアップに伴って困ったこと
- 旧バージョン用をそのまま配置しても動かない。
- 修正しようにも詳細なリファレンスがない。拡張アプリの構成と最低限必要な設定やファイルの情報はありましたが、それより詳細な情報を見つけられませんでした。
- 旧バージョンでa-blog cmsに同梱されていたHTTP_Request2ライブラリが同梱されなくなっていました。
新バージョン用に修正したこと
- ドキュメント通りに必須ファイル ServiceProvider.php を用意し、構成を見直しました
拡張アプリの開発ドキュメント https://developer.a-blogcms.jp/document/develop_apps/ - composer(PHPライブラリの依存関係を管理してくれるツール)を使って必要なライブラリを取得
- 公式拡張アプリ(Slack、GoogleSheets用)を参照して、ソースを見比べながら一つずつ試行錯誤
これで無事に、kintoneへフォームの内容を登録することができました。
a-blogバージョンアップで動かなかった理由(実は・・・)
Hook拡張が無効になっていた!
→ config.server.php の HOOK_ENABLE を1にする必要がありますが、設定してませんでした。
define('HOOK_ENABLE', 1);
HTTP_Request2がなかった
→ ライブラリを用意すればよかっただけかも。
実は、ソースやファイル構成自体を見直す必要はなく、上記設定だけで新バージョンでも動作したかもしれない、というオチでした。
が、新バージョン用に対応したことにより、拡張アプリとして他のサイトにも簡単に設置できるようになりました。