背景
幼い子どもを持つ父親として以下のような課題を抱えており、かねてからなんとかしたいなと考えていました。
手間が掛かるなーと悩んでいたところ、以下の記事を見て、各種サービスの API を叩くだけだから、Google Cloud Functions や AWS Lambda、 Azure Functions などを利用すれば解決できるかもしれないと思い試してみました。
概要
色々と調査したところ、こんな感じで実現できました。3
成果物
Google Cloud Functions にアップしているコードは GitHub にあげています。
https://github.com/kkeisuke/line-to-google-photos
これだけのために Google Cloud SDK をインストールするのは面倒だったので、コンソール画面のインラインエディタにコピペできるようにしています。
uglifyjs で、各種サービスのIDやトークンを結合した index.min.js をビルドしています。
各種サービス
Line Message API
Line Message API はこのドキュメントだけ参照して、管理画面でポチポチしていくだけで使えるところまでの設定が出来ました。ただ、仕様的にはかなり複雑で、用語とか雰囲気でしか理解できてません。。。
プランは妻と二人しか使う予定がないので、Developer Trial にしてますが、フリーとの違いはこれもまたよくわかってません。。。
Google Cloud Functions
選定理由
Google Cloud Functions を選んだのは、「AWS / Azure のアカウントを持ってない」というそれだけの理由です。
あと、Firebase を最初に調べたんですが、プランを見ると制限がきつそうだったので選びませんでした。4
Google Cloud Functions の場合、料金を見ると今回のケースだと負担もなく実現できそうです。5
ドキュメントも充実しており、クイックスタートから始めて迷うことはほぼありませんでした。
Node.js
Node.js のバージョンはこちらに記載されています。普段 Node.js を書かない(言い訳)ので、http://node.green/ や https://nodejs.org/docs/latest-v6.x/api/all.html を確認しながらだったんですが、実際に動かしたらバージョン的に対応してないとかが怖かったので、TypeScript6 で書いてます。
Google Photos
APIについては以下の記事を参考にしました。
Google Photosの無料容量15GBを有効活用!cURLでGoogle Photosへ画像アップロードするには?
記事の補足として、Picasa Web Albums Data API についてはドキュメントも一応確認しました。
また、Picasa ID の確認方法については以下の記事を参考にしました。
最後に
Google Photos PC版にはスライドショー機能もあるので、chrome拡張でも作れば、イベント(それこそ結婚式など)でリアルタイムに更新されるスライドショーを投映することもできそうです。
以上です。