4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

完全に理解したTalkAdvent Calendar 2020

Day 25

GoogleFormをチョット理解してガワだけオリジナルフォームにする

Last updated at Posted at 2020-12-24

#ガワだけオリジナルフォーム??
画面だけを自分の好きなデザインのフォームにしたいけどGoogleFormみたいな機能使いたいという時に使うちょっとした小技です。

#下準備
適当にGoogleFormを作ります
適当に入力形式の項目などを追加します
適当に解答集計用のスプレッドシートを作っておきます
適当なところから叩けるようにログインが必要のない設定にしておきます

#Chrome Developer Tool
GoogleFormを開いたまま、ChromeのDeveloperToolを開きます
※option + command + i (Macの方は)

#テキストフィールドに割り当てられたフィールド名を確認する
スクリーンショット 2020-12-25 6.00.47.png

#実はこっちの方が楽説・・・・
昔こんなのあったけ?みたいな気持ちですが、もっと楽な方法がありました。
この左上にあるメニューをクリックすると、
「事前に入力したURLを取得」というのがあるのです。

スクリーンショット 2020-12-25 6.02.34.png

回答入力し左下にある、「リンクを取得」をクリック
すると、フォーム左下に大きくリンクをコピーできる場所が出現します。

スクリーンショット 2020-12-25 6.03.41.png

#メモかなんかにコピペすると・・・?

https://docs.google.com/forms/d/e/1FAIpQLSehA2MP3C87InvPlNcSGH2I00Bs3BSHDH53Sd0pI4sNVv3w0A/viewform?usp=pp_url&entry.829023143=%E3%82%82%E3%81%AE%E3%82%82%E3%81%AA%E3%81%84&entry.76589297=+(%CB%98%CF%89%CB%98)%EF%BD%BD%EF%BE%94%EF%BD%A7

いい感じにidがついたままのURLを取得できます。

#とりあえずテストとしてcurlにしてみる

curl https://docs.google.com/forms/d/{You are Google Form ID}/formResponse --data-urlencode ifq --data-urlencode entry.829023143=ものもない  --data-urlencode entry.76589297=5000兆円欲しい -d submit=Submit

#結果を確認してみる

スクリーンショット 2020-12-25 6.05.51.png

#どうやってモバイルアプリに活かすのか?

  1. 適当にテキストが打てるレイアウトを作ります
  2. AndroidならEditText・iOSならtextField.textなどで入力された文字を適切に取得します
  3. 取得した文字を、Post時のパラメータとして突っ込みます。
  4. 最後にライブラリでも標準のやつでもなんでもいいのでPOSTします。
  5. 終わりです。

#iOSなら


let parameters = [
    "entry.829023143": "勝ち取りたい",
    "entry.76589297" : "5000兆円欲しい",
    "submit"         : "Submit"
    ]

AF.request("https://docs.google.com/forms/d/{You are Google Form ID}/formResponse", method: .post, parameters: parameters)

#Androidなら


 val client:OkHttpClient = OkHttpClient()
            val url:String = "https://docs.google.com/forms/d/{You are Google Form ID}/formResponse"
            val body:FormBody = FormBody.Builder()
                  .add("entry.829023143", textfield1) /// "勝ち取りたい"
                  .add("entry.76589297", textfield2)  /// "5000兆円欲しい"
                  .add("submit", Submit)
                  .build()
            val request = Request.Builder().url(url).post(body).build()
            
            client.newCall(request).enqueue(.......


最近、微妙にOldな感じになりかけたりしてるので、誤っている可能性もあります。。。

4
2
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?