サービスのお便りフォームをGoogleSheetに追記

2020年8月9日

テクノロジー

効率とセキュリティを重要視する、ユゲタです。 いろいろなWebサービスを作る時に、お便りや、お問い合わせフォームを作る場合に、メールアドレスや名前、IPアドレスなどのアクセス情報をまとめて保存をすると、それはもはや個人を特定できる情報なので、法律で言うところの「個人情報」に該当します。 サーバーには、そうした個人情報を持たないことが、手軽に運用できるセキュアサイトとして、安心運用ができるため、これまでは、そういう情報は、管理者に向けてメールを飛ばしてサーバーにはデータを残さないというようにしていました。 こうして送られてきたメールをエクセルやGoogleSheetに、書き込んで、管理をしていたのですが、なんだか作業がアホらしく感じてきたので、これを一括自動で行えるように、GoogleAPIを導入してみることにしました。

本日のIT謎掛け

「GoogleAPI」と、かけまして・・・ 「補助金の申請作業」と、ときます。 そのココロは・・・ 事前の設定が大変ですが、便利で助かります。

GoogleSheetにデータを追記するまでの道

一昔前は、PHPからシンプルにデータをPOSTすることができていたGoogleサービスですが、サービス数も増えてきた上、セキュリティも考慮された形で、composerを使ったAPIを通して利用する形になっていました。 https://github.com/googleapis/google-api-php-client こちらのサイトからソースをcloneすると、中に書かれているREADMEには、 composer require google/apiclient:"^2.0" と書かれているので、composerを利用することが前提になっていることがわかる。 https://blog.capilano-fw.com/?p=4337 色々検索した結果、こちらのページが一番わかりやすかったです。 そして、このライブラリ導入してから、以下の工程を行うことになる。 googleの設定がかなりめんどくさいんですが、気合を入れて頑張って設定完了しましょう。 実際の作業は、上記リンクページの手順で行ってください。

phpバージョンの落とし穴

導入時に、php7.0サーバーで検証をしていた時に、どうしてもPHPエラーがでて先に進めない状態だったので、エラーログを念入りに調べてみると、このcomposerライブラリは、PHP7.1以上のバージョンでないと、正常に動作しないことがわかりました。 READMEには、PHP5.4以上と明確に書かれているのに、この点につまずいている人もネット上にたくさんいたので、PHP7.1にアップデートすることで、エラーを回避することができました。 ちなみに、7.0でのエラー原因は、const記述されているプログラムの箇所で、defineを使えばいいのに、constを使ってしまっているため、PHP7.0では、エラーにつながっていたようです。

composerはファイル数が多いんじゃ

composerでライブラリを一式インストールすると、12,000ほどのファイルがサーバーにインストールされますが、容量的には、60Mぐらい、 でも、これを開発員それぞれに入れていくと、ファイル管理をしている開発員からは、悲鳴が上がっていた。 たった一つの機能で1万ファイル超えのライブラリは、管理対象にすることはできないと・・・ そうした管理は、する必要がないのがcomposerなのだが、本当にこのライブラリファイルを全て使っているのか?という疑いも頭に浮かんだのは間違いない。 個人的には、最近の環境構築時のgit,docker,composer,nodemodulesなどは、ストレージ容量を圧迫するケースが多いので、できるだけブラックボックスを無くしたい下駄としては、オレオレフレームワーク推奨派なんですよね。

完成

なにはともあれ、GoogleAPI認証の各種設定と、サーバー環境構築、プログラミングを終え、無事にお問い合わせフォームをGoogleSheetに追記する形ができました。 しばらくこれで運用してみて、問題点を探してみようと思います。 今回は、composerに対する愚痴ブログになってしまいましたね。 ペチパーの皆様、どうもすみません。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。