ついさっきブログ更新をしてましたが、それまでは8月冒頭でぱったりと切ってました。理由はここに書いたとおりです。それからしばらく経って8月のお盆ぐらいに埋め込みタグを生成するサービスづくりに着手してました。
Javascript書くの久々すぎて右往左往してましたが、コード的に大丈夫かはともかく公開してみました。
Google Photos Embed Code Generator
この写真を見ていただけるとわかると思いますが、こんな感じで埋め込みタグを生成してくれます。アルバム単位で決定するのでアルバムを作成することが条件です。写真単体でできるか調べてみてますが今のところまだわからないです。
仕組み
サービスと言っても、javascriptのみで構成されたhtmlファイル一つのみで実質ブラウザ側のみで処理しています。
Google Picker APIという、Googleのサービスで使えるファイルピッカーやアップロードを行うリッチなUI込のAPIを使いました。javascriptで動作するもので、Google API Consoleで必要なAPIキーとoAuth2のクライアントID/シークレットを取れば利用できます。
このサービスのコード自体もAPIのドキュメントに書かれているHello Worldのコードをほとんど変えることなく動いてます。なので使い勝手はものすごく良いと思います。GoogleフォトやGoogleドライブ, 画像検索やMapやYoutubeも扱えるらしいので、使わない手はないと思います。
Picker API Developer's Guide | Picker | Google Developers
このサービスを作るにあたって、以下のQiita記事が非常に参考になりました。ボタン操作で認証を走らせる方法がよくわかってなかったのですが、デモコードを参考に(javascriptのonClickイベントは少しだけ変更)させていただいてます。
Google Pickerを使ってWebサイトのUXを向上させよう - Qiita
howdy39/google-picker-api-demo: google picker api demo https://developers.google.com/picker/
というわけで、感想やまずいところなど教えていただけると嬉しいので、ぜひとも感想などいただければと思います。
今後の予定
- 一度取得したアルバムのタグを数回キャッシュする
- imgタグのheigthとwidthを設定として変更, 動的に変更する
- タグ取得時に表示されているサムネールの大きさを設定でかえれるようにする
- githubへの公開を近いうちに行う
今のところ満足してしまっていて優先度高くないですが、気になったら改善してみます。githubへの公開は近いうちに行っておきます。
おまけ:Googleフォト周りの写真のURLについて
最後に、このサービスを作る過程で、Googleフォト周りの画像URLについて調べていたものを上げておきます。関連するサービスで取得できるURLはこのぐらいあります。
元画像はこちらで
旧picasa経由, GooglePickerAPI, Googleフォト, アルバムアーカイブ(Picasa Webアルバムに現時点でアクセスすると見れる)で取れるURLがこちら
- picasaで作った埋め込みタグのURL: https://lh3.googleusercontent.com/-Ka8gppnEBfM/Vylp9DFVSEI/AAAAAAAAyiQ/AKg9Zhq7mTsO_AMO0fjCp2W1FyRRqWVAACCo/s640/P_20160430_102447.jpg
- Google Picker APIで撮ったサムネールの配列内にあるURL: https://lh3.googleusercontent.com/-Ka8gppnEBfM/Vylp9DFVSEI/AAAAAAAAzR4/UWokQHIaYeoKerz-IwxiqDq41zK7ILmXgCKgB/P_20160430_102447.jpg
- Googleフォトの画像詳細の画像のURL:https://lh3.googleusercontent.com/sLqWPwwRJhP4Mn3JDRiHpUQMz0taxaeEBoNCE6LrY47WqSB5-9bgQwRgLxQ4Tye5HglgGztkKxNqa_1lIxD78p4PK97B5gvcoX5dC5e1hy93cCRC0kZg-5QKPkol28gpKyG51A232YbaldGygzLFhN0wmzpXwAj2MpDFA-FLhrNj6ohnJKgdL-6lzfQQP_6roNzz37ybH36YX2qU3x27SangpSVRQExYMn0muFbLk3VAQA5RKzkN6-ExkoeX9DCa1XCCRTgN60WHDeBbHloA_Ex6W_RZktAPwMj-pzFRZQEJ5KTgF9roSKsLxyokenlmVAov5qcyNoabE9tmk_Vct6aWj8rgShgJMynTDui3xF2hIWm8m6ZnyIg_cL5AHxZTqj3MRG9nYqJ3PHlvUxg6jjCE1Cdc7RNRLozgM0wPk2DfZR7T_RAVCV7PoozHshhTB5zzLrg81jBeWNW8WsFb3WrX4VfQ9IomS6Ul1Vv1-kkdDdoWYtlyR9dO1jfUcVNNwb7j0VxKKeit6HYSo4R_hRH2oRGqUMiAti3ej-eSPogHO56xI6KBHJb6ogUqMXpdzeLj5VJW1d310gqyqL5T0K5DzdNoRSsg=w378-h671-no
- アルバムアーカイブ上のアルバム一覧から取得したURL: https://lh3.googleusercontent.com/Xe4o1hO6Yad6KSnWsKR8NsK6Kja9VFGQ0xL1OtLvL84gx7wDE1a3Oj3V7A8P0Ihi9ebNDcd-VNebMdU=w1366-h768-rw-no
カオス感が半端ない。。。Googleは一体何がしたいんですかね?
あとGoogleフォトで有名な話ですが、公開設定関係なく画像のURLを公開するとその画像が見れてしまいます。このAPI経由でもそうらしいのでお気をつけ下さい。
隠したくて非公開設定した写真が覗き見されるかも!?オンライン写真サービスの意外なリスクを「Google フォト」で試す【吉川英一の「スマホのちょっと深いとこ」】 - S-MAX
追記:2016-08-28 23:06
Githubへ公開しました。ローカルなどで利用される場合はAPIキー, クライアントIDを変更下さい。
hrsano645/google-photos-embed-code-generator: Generate Embed Code(img tag) for Google Photos