本文へ移動
Bounty Developer

QR交換

会場で会った相手のQRを読み取り、会った事実を記録します。

QR 交換は、会場で会った相手の QR を読み取り、会った事実を記録する機能である。表示する QR は 4S One QR ひとつで、相手が読めば人との交換、スタッフが読めば会場の受付になる。何として扱うかは読む側が決める。

会った事実はこの交換だけが作る。マッチや会う予定、「着いた」の合図では成立しない。成立するとふたりに得点が入り、メッセージや次の約束へ進める。

流れ

  1. 交換(相手が読む): 1. ONE QR を見せる
  2. 交換(相手が読む): 2. 相手が読む
  3. 交換(相手が読む): 3. 会った記録
  4. 交換(相手が読む): 4. ふたりに得点
  5. 受付(スタッフが読む): 1. ONE QR を見せる
  6. 受付(スタッフが読む): 2. スタッフが読む
  7. 受付(スタッフが読む): 3. 4S で参加を確認
  8. 受付(スタッフが読む): 4. 受付の記録

交換の流れ

自分の QR は画面に出すだけでよく、片方が相手の QR を読めばふたりの側に同時に記録される。読んだ側は短い演出のあと相手のプロフィールへ進み、読まれた側の画面も自動で読んだ人のプロフィールへ進む。

読み取りの入口は共通で、ブラウザのカメラ・貼り付け・アプリのスキャナが同じ処理を通る。会場のチェックイン用の QR を読んだときは、その場でチェックインせず、分類・題・場所・日時を確かめるシートを出してから進む。

本物の QR か確かめる仕組み

4S One QR には本人の公開ページの URL と照合用のトークンが入っている。サーバは読み取った URL の形を厳しく確かめ、トークンを本人の登録済みの値と照らし合わせて、一致したときだけ会ったことにする。照合用の値はハッシュだけを保存し、生のトークンは保存もログ出力もしない。

一致しなかったときは、その人が存在するかどうかも明かさずに断る。BOUNTY を使っていない 4S の利用者の QR を読んだときは、得点を付けずに相手として記録し、アプリの案内を出す。

One QR を表示できないときの予備として、短い時間だけ有効な署名付きの QR も読める。過去のスクリーンショットや転送をある程度は防ぐが、どちらの方式も物理的に同じ場所にいたことまでは保証しない。

記録と得点

会った記録と、それに伴うつながり・得点・通知・会えた「今会えます」の合図の取り消しは、同じ処理の中でまとめて、重ねずに保存する。同じ相手とすでに会っていれば、読み直しても得点は増えない。

得点はふたりの両方に入る。MATCH してから会った場合や、承認済み WANTED に会えた場合は上乗せがある。会う予定の時刻の幅で読めば、その予定は「予約どおりに会えた」になる。

会場の受付

会場の入場はスタッフが同じ One QR を読み、4S で参加を確かめて受付を記録する。本人の QR の画面には、受付が済んでいるかだけを示す。会場やブースの受付を人との交換に変えることはしない。

API で扱うには

自分の QR の表示・読み取った QR での交換・読まれた交換の受け取り・ウォレットへの追加は、関連の API(この頁の下の関連)にある。交換の成立はサーバの照合でだけ決まり、クライアントが送った相手の ID や「交換済み」の印だけでは成立しない。

デモ

できること

  • 自分のQRを表示する
  • 相手のQRを読む
  • ミートを記録する
  • 相手のプロフィールを開く