Typeformのセキュリティ強化とそれに伴うGASの改修を記念して
前提
ピティナ では一部のお申込みを Typeform で作っています。
Typeform は直感的な操作でアンケートや簡易的な申込フォームを作れるのが特徴で
一番のお気に入りは、画像アップロード機能とLogicJumpです。
LogicJumpっていうのは要するに if文 を書ける機能で、
回答に応じて表示する質問を変えることができる機能です。
類似のサービスはいろいろありますが、if文 を書けるのはありがたいです。
とりあえず触ってみたい?
公式のサポートセンターが、問い合わせフォームを Typeformで作っているので、
雰囲気を知りたい方はこちら。
[ こんな画面 ]
※最後に submit しなければ、送信されることもないので安心。
GoogleSheetとの連携
そんな素敵サービスなのですが、アップロードされた画像をダウンロードするには、
Result画面からダウンロードボタンを押さないといけない。
っていうのが、こまったポイントでした。
正直なところ Typeform の管理画面はびっくりするくらい遅いです。阿部寛さんのサイト10年分くらいかかります。
1000レコード分、一つ一つダウンロードしていたら年が明けます。
そこでスプレッドシートにデータ連携して、取得したURLからダウンロードをします。
データ連携方法
連携方法は2種類です。
Typeform の integrate機能
Result画面にある「integrate」リンクを開くと、各種連携サービスが出てきます。
赤枠で囲った部分がGoogleSheetsとの連携ですが、新しくファイルを作るか、既存ファイルを利用するか選べます。
フォームの全項目(全カラム)分をGoogleSheetに連携してくれて、新しく申込が来るたびにレコードが追加されていきます。
Zapierなど
基本的には、上記の integrate で事足りると思うのですが、integrate ができる前からZapier で連携しているので
そのまま利用しています。
あえて必要性を語るなら、下記のようなケースには Zapier 等の連携サービスが必要になります。
- 複数のフォームを持っている
- 各フォームで項目は完全に一致していない
- GoogleSheetに連携した際、同じ項目は同じ列に欲しい
3点目は下記の画像ダウンロードの部分に係る部分ですが、
1つのGASで複数のGoogleSheetを扱う場合にはあり得るかと思います。
画像のダウンロード
昨年までは・・・
さて、GoogleSheetへの連携まで出来たら、今度は画像のダウンロードがしたいのですが、
実は、昨年までは取得したURLを叩けば(誰でも)画像がダウンロードできました
[ ダウンロードURL ]
https://admin.typeform.com/form/results/file/download/{HOGEHOGE}/{FUGAFUGA}/{PICTURE}
※今はアクセスしても、ログイン画面が表示されるだけです。
呆然とする穴っぷり(なので、Qiitaにも書けずにいました)だったのですが、
さすがに気づいたらしく、現在はAPIキーなどが必要になりました。
2018年7月現在の仕様
セキュリティが強化されたのはユーザとして喜ばしい限りなのですが、
- ユーザが画像アップロード ~ 特定のフォルダに、特定のファイル名で保存
を自動化できたのが、TypeFormを使う最大のメリットだったので、自動ダウンロードできなくなると結構なダメージです。
そこで、サポートに問い合わせたり、APIリファレンスを見たり、ひたすらResponseを取得してみた結果
取得できるURLが分かりました。
[ ダウンロードURL ]
https://api.typeform.com/v0/form/{form_id}/fields/{fields_id}/blob/{PICTURE_NAME}?key={API_KEY}
※ v0 っていうのが不安なんですが。v1 のAPIあるし・・・。
※ いつまでダウンロードできるかは不明です。
form_id, fields_id について、またAPI_KEYの取得方法はドキュメントにありますので、必要なかたはご参照ください。
ダウンロードできなくて困っている方の参考になれば幸いです。