0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

cURLでGoogle Formsに回答してみる

Last updated at Posted at 2024-11-12

はじめに

できるという話を小耳にはさんで気になったのでやってみます。

適当なフォームを作る

設問1つだけの簡単なフォームを作りました。
image.png

必要な情報を取得する

各設問に対応するHTML要素のname属性を取得する必要があります。
フォーム回答画面のHTMLから探し出してもいいのですが、込み入っていて見つけるのが大変なので別の方法を提案します。

  1. 回答画面にアクセスする
  2. ディベロッパーツールのNetworkタブを開いておく
  3. 適当な回答を入力して送信する
    image.png
  4. NameがformResponseのログを選択する
  5. PayloadタブのFormDataをview sourceで見る

先頭にあるentry.で始まる要素が入力データです。
今回の場合だとentry.416791464=test+nameが取得できました。
entry.416791464がHTML要素のname属性、test+nameが入力内容です。

回答が1つ作られてしまうので不要であれば削除します。

URLを組み立てて送信する

フォームの送信先URLはhttps://docs.google.com/forms/u/0/d/e/{フォームのID}/formResponseです。
{フォームのID}は回答画面のURLに含まれているIDで、先ほど取得したネットワークログのRequest URLからも確認できます。

これと回答内容を組み合わせてcURLで送信します。
回答内容は自由に書き換えることができます。

$ curl -X POST https://docs.google.com/forms/u/0/d/e/{フォームのID}/formResponse?entry.416791464=curl+test+name

フォームの管理画面?から回答を確認すると、送信した内容が確認できました。
image.png

おわりに

今回はcURLでGoogleFormsの回答をしてみました。
用途としてフォームの回答内容をスプレッドシートと紐づけて簡易的なデータベースとして使用できないかと考えましたが、取得するためにAPIを使う以外の方法を知らないので、結局APIを使うのならFormsを使う意味がないなーと…
いい方法があれば教えてください。
データ収集などには活用できそうですね。

最後までご覧いただきありがとうございました。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?