0
1

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.

コロナの入退室管理に打ち勝つGoogle formの自動回答

Last updated at Posted at 2020-11-07

はじめに

コロナウイルス関係で研究室の退室時に、その日の入退室時間をGoogle formで入力する必要があります。

毎日行うのが面倒なのと、入力忘れも多いので全自動にしてしまおうというプロジェクトです。

入退室時にカメラによる顔認証で人物を特定し、その人の情報をGoogle formで自動入力/送信します。

今回はその自動入力/送信の部分をまとめました。

自動入力の方法

Google フォームのURL(例)
(https://docs.google.com/viewform?)

viewformの後に「usp=pp_url」を加えることで、事前入力があることを知らせてあげる。

次に、フォームの各質問を識別する番号があるので、Chromeの検証画面で質問のdivを探し、2階層目で以下のような番号を探す。

スクリーンショット 2020-11-07 12.57.41.png

番号を見つけたらentry.番号=回答内容の形でパラメータを加える。
以下のような形でつなげればok

https://~/viewform?usp=pp_url&entry.1534939278=テスト太郎&entry.511939456='+student_id

研究室の入退室報告の場合(メモ)

研究室の場合は氏名と学籍番号、入退室日時の入力が必要です。
識別番号は以下の通りとなっていました。

各入力の識別番号

氏名:208832475
学籍番号:913668226
入退室日時:1243542068
備考:1484015294

プログラムの作成

識別番号がわかったので、実際にプログラムを書いていきま
す。

汎用性を高めるために、Google formごとに依存するurl、識別番号はcfg.jsonにまとめます。

form_urlviewform?の手前です。

cfg.json
{
    "form_url": "https://docs.google.com/forms/6_m-WWhmzw/",
    "entry": {
        "name": 2005620554,
        "id": 1045781291,
        "time": 1065046570
    },
    "output":{
        "name": "テスト太郎",
        "id": "00110220404",
        "time": "2020/11/7 13-19"
    }
}
form_.py
fname = "cfg.json"
with open(fname, "r") as f:
    cfg = json.load(f)

    # 回答フォームの作成
    params = {"entry.{}".format(cfg["entry"][k]): cfg["output"][k] for k in cfg["entry"].keys()}
    res = requests.get(cfg["form_url"] + "formResponse", params=params)

# 回答ができてるかの確認
if res.status_code == 200:
    print("Done!")
else:
    res.raise_for_status()
    print("Error")

これで自動送信が可能です。
(googleアカウントのログインが必要ない場合に限る)

参考

毎朝5時にGoogle Formに自動回答したい - Qiita

Google Form自動回答Botでクソアンケートに勝つ(Python3) - free(malloc(sizeof(MRM)));

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?