2018年7月14日(土)から16日(月・祝)にかけて、前の会社の恒例行事、開発合宿に参加して来ました。
何やりたかったの?
テーマはDrupalをやると決めていました。
Google Homeが家にあったので、Google Homeから音声でDrupalのCRUDを操りたいなーとぼんやりと思っていた。
無情な警告
Drupal × Google Homeのモジュールでの警告が下記。
脆弱性があるらしい。
Wow….ALexa はそんなことないのに・・・
持ってくるAIスピーカーを間違えた(事前調査不足)
SNS構築
と言うわけで、路線を変更。SNSを構築することに。
仕様は、下記。
- ログイン機能
- エントリ投稿
- エントリ検索機能
- その他&顧客要望
土屋太鳳ちゃんに関する情報(テレビ出演情報や写真、SNS更新情報)などを共有できればいいかなー、と。
まぁ、ぶっちゃけ、SNSのテーマなんてなんでもよかったんですけどね。
Drupalの本領として、インスタンス立ち上げるだけでログイン機能やエントリ機能、エントリ検索機能はデフォルトで提供されているのは強いよなーと言う印象。
開発合宿開始1時間で、SNSの8割は完成。
ログイン機能、エントリ投稿、エントリ検索機能はDrupalのデフォルト。
我々が開発したい本質である、その他や、顧客要望の開発に注力できるのは本当に素晴らしい点だと感じました。
ちなみにymlいじったり、composerでDLしたりするものの、 ここまではノンプログラミング。
他のフレームワークとは比較しようのできない、スピードの速さ。
ログイン機能やコンテンツのCRUD機能など、作成せずともインスタンスを立ち上げるだけで既にある。
Drupalの強みである。
カスタムモジュール
せっかくGoogle Homeを持って来たので、「その他&顧客要望」としてGoogle Home と連携するカスタムモジュールを作成してみた。
前回の開発合宿同様、google-home-notifierを利用して、 Google Homeに好きなことを喋らせる感じ。
カスタムモジュール開発は人生初。
研修やチュートリアルでは経験済みではあるものの、自分で考えた処理を実装するのは初めてでした。
まずは設定のymlファイルの作成。
次にロジック部分。 フォームの定義をしたら、そのあとはメインとなるロジック。 ロジックもcurlで特定のURLに飛ばすだけなので、対して難しいことはやっていない。
開発したカスタムモジュールは下記。
https://github.com/UltraBirdTech/Tao_SNS/tree/master/modules/custom/google_home_notifiergithub.com
buildForm や submitFormなど押し付けのものを除けば、
組んだロジックは、数十行程。
その数十行で機能を開発できるのはとてもいいなと思うところです。
システム連携図は大まかに下記。
前回の開発合宿でも使用した、google-home-notifierを再利用しました。
Drupalは内部で立ち上げずみの、google-home-notifierにcurlでリクエストを投げるだけ。
開発したページは下記。
入力フォームにGoogle Home に言わせたい内容を入力して、「send」をクリック。
無事に送信完了。Google Homeが喋ってくれます。
とてもシンプルに開発できたと思います。
まとめ
Drupalの生産性の高さを感じることができた開発合宿でした。
次回もDrupalで何かやりたいなー。
次こそはAlexa持って行って連携しよう。
カスタムモジュールを開発したのは、初めてだったけど軽い内容だったので難しくはなかった。 案件で複雑な仕様になってくると、どうなるかが楽しみ。
まだまだDrupalの入り口。 これからも頑張って勉強していきます。