LoginSignup
4
2

More than 5 years have passed since last update.

GASを使ってTypeForm上にアップロードされた画像を取得する件

Last updated at Posted at 2018-07-06

Typeformのセキュリティ強化とそれに伴うGASの改修を記念して

前提

ピティナ では一部のお申込みを Typeform で作っています。

Typeform は直感的な操作でアンケートや簡易的な申込フォームを作れるのが特徴で
一番のお気に入りは、画像アップロード機能とLogicJumpです。

LogicJumpっていうのは要するに if文 を書ける機能で、
回答に応じて表示する質問を変えることができる機能です。

類似のサービスはいろいろありますが、if文 を書けるのはありがたいです。

とりあえず触ってみたい?

公式のサポートセンターが、問い合わせフォームを Typeformで作っているので、
雰囲気を知りたい方はこちら。
[ こんな画面 ]
Submit Ticket  EN .png
※最後に submit しなければ、送信されることもないので安心。

GoogleSheetとの連携

そんな素敵サービスなのですが、アップロードされた画像をダウンロードするには、
Result画面からダウンロードボタンを押さないといけない。
っていうのが、こまったポイントでした。

[ Resule画面イメージ ]
Results.png

正直なところ Typeform の管理画面はびっくりするくらい遅いです。阿部寛さんのサイト10年分くらいかかります。
1000レコード分、一つ一つダウンロードしていたら年が明けます。

そこでスプレッドシートにデータ連携して、取得したURLからダウンロードをします。

データ連携方法

連携方法は2種類です。

Typeform の integrate機能

Result画面にある「integrate」リンクを開くと、各種連携サービスが出てきます。

integration.png
MailChimp とかもありますね。

赤枠で囲った部分がGoogleSheetsとの連携ですが、新しくファイルを作るか、既存ファイルを利用するか選べます。

フォームの全項目(全カラム)分をGoogleSheetに連携してくれて、新しく申込が来るたびにレコードが追加されていきます。

Zapierなど

基本的には、上記の integrate で事足りると思うのですが、integrate ができる前からZapier で連携しているので
そのまま利用しています。

あえて必要性を語るなら、下記のようなケースには Zapier 等の連携サービスが必要になります。

  • 複数のフォームを持っている
  • 各フォームで項目は完全に一致していない
  • GoogleSheetに連携した際、同じ項目は同じ列に欲しい

3点目は下記の画像ダウンロードの部分に係る部分ですが、
1つのGASで複数のGoogleSheetを扱う場合にはあり得るかと思います。

画像のダウンロード

昨年までは・・・

さて、GoogleSheetへの連携まで出来たら、今度は画像のダウンロードがしたいのですが、
実は、昨年までは取得したURLを叩けば(誰でも)画像がダウンロードできました:stuck_out_tongue:

[ ダウンロード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の取得方法はドキュメントにありますので、必要なかたはご参照ください。

ダウンロードできなくて困っている方の参考になれば幸いです。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2