IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許-自動的なリンクベースのメッセージ検証 図1
  • 特許-自動的なリンクベースのメッセージ検証 図2
  • 特許-自動的なリンクベースのメッセージ検証 図3
  • 特許-自動的なリンクベースのメッセージ検証 図4
  • 特許-自動的なリンクベースのメッセージ検証 図5
  • 特許-自動的なリンクベースのメッセージ検証 図6
  • 特許-自動的なリンクベースのメッセージ検証 図7
  • 特許-自動的なリンクベースのメッセージ検証 図8
  • 特許-自動的なリンクベースのメッセージ検証 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-25
(45)【発行日】2022-08-02
(54)【発明の名称】自動的なリンクベースのメッセージ検証
(51)【国際特許分類】
   G06F 21/33 20130101AFI20220726BHJP
【FI】
G06F21/33
【請求項の数】 26
(21)【出願番号】P 2021543113
(86)(22)【出願日】2019-09-23
(65)【公表番号】
(43)【公表日】2022-01-06
(86)【国際出願番号】 US2019052514
(87)【国際公開番号】W WO2020072227
(87)【国際公開日】2020-04-09
【審査請求日】2021-04-15
(31)【優先権主張番号】16/148,132
(32)【優先日】2018-10-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】シッダールタ、サンディープ
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2006-171814(JP,A)
【文献】特開2017-174452(JP,A)
【文献】特開2005-063356(JP,A)
【文献】特表2016-519800(JP,A)
【文献】米国特許出願公開第2016/0117388(US,A1)
【文献】米国特許出願公開第2015/0236908(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/33
(57)【特許請求の範囲】
【請求項1】
データ処理ハードウェア(810)において、ユーザデバイス(110)上でアプリケーション(512)を起動する要求(220)を受信することであって、前記要求(220)は、前記ユーザデバイス(110)に関連付けられ、前記ユーザデバイス(110)を前記アプリケーション(512)に登録するために必要とされる一意フィーチャ(222)を含む、受信することと、
前記データ処理ハードウェア(810)によって、前記ユーザデバイス(110)上で前記アプリケーション(512)を起動するための選択可能リンク(231)を生成することであって、前記選択可能リンク(231)は、
前記アプリケーション(512)を識別するアプリケーション識別子(232)と、
前記一意フィーチャ(222)が前記ユーザデバイス(110)に関連付けられていることを検証するために使用される検証コード(236)と、を含む、生成することと、
前記データ処理ハードウェア(810)によって、前記選択可能リンク(231)を含む第1のメッセージ(230)を、前記一意フィーチャ(222)を使用して前記ユーザデバイス(110)に送信することと、を含み、前記第1のメッセージ(230)は、前記ユーザデバイス(110)によって受信されるとき、前記ユーザデバイス(110)に、
前記ユーザデバイス(110)上で実行するグラフィカルユーザインターフェース(111)上に前記選択可能リンク(231)を表示することと、
前記グラフィカルユーザインターフェース(111)上に表示された前記選択可能リンク(231)の選択を示す選択指示を受信した後、前記アプリケーション識別子(232)を使用して前記アプリケーション(512)を起動することと、
前記ユーザデバイス(110)が、前記ユーザデバイス(110)を前記アプリケーション(512)に登録する確認を受信することに応じて、前記検証コード(236)を前記データ処理ハードウェア(810)に送信することと、を行わせるように構成されており、
前記データ処理ハードウェア(810)によって、前記ユーザデバイス(110)からの前記検証コード(236)を受信することに応じて前記ユーザデバイス(110)を前記アプリケーション(512)に登録することをさらに含む、
方法(600)。
【請求項2】
前記第1のメッセージ(230)は、前記ユーザデバイス(110)によって受信されるとき、前記ユーザデバイス(110)に、前記アプリケーション(512)を起動した後、前記グラフィカルユーザインターフェース(111)に確認ボタン(514)を表示することを行わせるようにさらに構成されており、前記確認ボタン(514)が前記ユーザデバイス(110)のユーザによって選択されることにより、前記ユーザデバイス(110)を前記アプリケーション(512)に登録するための前記ユーザによる確認が示され、前記ユーザデバイス(110)に、前記検証コード(236)のユーザ入力を必要とせずに、前記検証コード(236)を前記データ処理ハードウェア(810)へと送信させる、
請求項1に記載の方法(600)。
【請求項3】
前記ユーザデバイス(110)からの前記検証コード(236)が受信されたときに前記ユーザデバイス(110)を前記アプリケーション(512)に登録することは、
前記第1のメッセージ(230)が前記ユーザデバイス(110)に送信されてから、前記検証コード(236)が前記ユーザデバイス(110)から受信されるまでの期間が有効期間閾値(238)を満たすかどうかを判定することと、
前記期間が前記有効期間閾値(238)を満たす場合、前記ユーザデバイス(110)を前記アプリケーション(512)に登録することと、を含む、
請求項1または2に記載の方法(600)。
【請求項4】
前記ユーザデバイス(110)からの前記検証コード(236)が受信されたときに前記ユーザデバイス(110)を前記アプリケーション(512)に登録することは、
前記第1のメッセージ(230)が前記ユーザデバイス(110)に送信されてから、前記検証コード(236)が前記ユーザデバイス(110)から受信されるまでの期間が有効期間閾値(238)を満たすかどうかを判定することと、
前記期間が前記有効期間閾値(238)を満たさない場合、前記ユーザデバイス(110)を前記アプリケーション(512)に登録することを妨げることと、を含む、
請求項1から3のいずれか一項に記載の方法(600)。
【請求項5】
前記期間が前記有効期間閾値(238)を満たさない場合、前記一意フィーチャ(222)を使用して第2のメッセージ(430)を前記ユーザデバイス(110)に送信することをさらに含み、前記第2のメッセージ(430)は、前記一意フィーチャ(222)が前記ユーザデバイス(110)に関連付けられていることを検証するために使用される新たな検証コード(236)を含む、
請求項4に記載の方法(600)。
【請求項6】
前記選択可能リンク(231)はディープリンクを含み、該ディープリンクは、選択されたとき、前記アプリケーション(512)がまだ前記ユーザデバイス(110)にインストールされていない場合には、前記ユーザデバイス(110)に前記アプリケーション(512)をインストールさせる、あるいは、前記アプリケーション(512)が前記ユーザデバイス(110)に既にインストールされている場合は、前記ユーザデバイス(110)に前記アプリケーション(512)を開かせる、
請求項1から5のいずれか一項に記載の方法(600)。
【請求項7】
前記第1のメッセージ(230)は、前記ユーザデバイス(110)によって受信されたとき、前記アプリケーション(512)を起動した後、前記アプリケーション(512)に前記ユーザデバイス(110)に関連付けられた前記一意フィーチャ(222)を投入するようにさらに構成されている、
請求項1から6のいずれか一項に記載の方法(600)。
【請求項8】
前記一意フィーチャ(222)は電話番号(342)を含む、
請求項1から7のいずれか一項に記載の方法(600)。
【請求項9】
前記ユーザデバイス(110)を前記アプリケーション(512)に登録した後、第2のメッセージ(430)を前記ユーザデバイス(110)に送信することをさらに含み、前記第2のメッセージ(430)は、前記ユーザデバイス(110)によって受信されるとき、前記ユーザデバイス(110)に、前記ユーザデバイス(110)の前記アプリケーション(512)への登録が成功したことを前記ユーザデバイス(110)のユーザに対して通知させる、
請求項1から8のいずれか一項に記載の方法(600)。
【請求項10】
ユーザデバイス(110)のデータ処理ハードウェア(910)において、前記ユーザデバイス(110)に関連付けられた電話番号(342)を検証するための選択可能リンク(231)を含む第1のメッセージ(230)を受信することであって、前記選択可能リンク(231)は、
前記電話番号(342)に対応するメタデータ(234)と、
前記電話番号(342)が前記ユーザデバイス(110)に関連付けられていることを検証するために使用される検証コード(236)と、を含む、受信することと、
前記データ処理ハードウェア(910)によって、前記ユーザデバイス(110)上で実行するグラフィカルユーザインターフェース(111)に前記選択可能リンク(231)を表示することと、
前記データ処理ハードウェア(910)において、前記グラフィカルユーザインターフェース(111)上に表示された前記選択可能リンク(231)の選択を示す選択指示を受信することと、
前記選択指示を受信した後、前記データ処理ハードウェア(910)によって、ネットワークを介して、前記データ処理ハードウェア(910)と通信するサービス(125)に、前記検証コード(236)を送信することであって、前記検証コード(236)は、前記サービス(125)が前記検証コード(236)を受信したことに応じて、前記サービス(125)に前記電話番号(342)が前記ユーザデバイス(110)に関連付けられていることを検証させる、送信することと、
を含む方法(700)。
【請求項11】
前記選択可能リンク(231)は、アプリケーション(512)を識別するアプリケーション識別子(232)をさらに含み、前記アプリケーション(512)は、前記ユーザデバイス(110)を前記アプリケーション(512)に登録するために、前記ユーザデバイス(110)に関連付けられた前記電話番号(342)を必要とし、前記方法は、前記選択指示を受信することに応じて、
前記データ処理ハードウェア(910)によって、前記アプリケーション識別子(232)を使用して、前記ユーザデバイス(110)上で前記アプリケーション(512)を起動することと、
前記データ処理ハードウェア(910)によって、前記アプリケーション(512)に、前記ユーザデバイス(110)に関連付けられた前記電話番号(342)を投入することと、をさらに含む、
請求項10に記載の方法(700)。
【請求項12】
前記選択可能リンク(231)の選択を示す前記選択指示を受信した後、
前記データ処理ハードウェア(910)によって、前記グラフィカルユーザインターフェース(111)上に確認ボタン(514)を表示することと、
前記データ処理ハードウェア(910)において、前記電話番号(342)が前記ユーザデバイス(110)に関連付けられていることを検証するべく、前記確認ボタン(514)の選択を示す第2の選択指示を受信することと、
前記第2の選択指示を受信することに応じて、前記データ処理ハードウェア(910)によって、前記検証コード(236)のユーザ入力を必要とせずに、前記検証コード(236)を前記サービス(125)に自動的に送信することと、をさらに含む、
請求項10または11に記載の方法(700)。
【請求項13】
前記第1のメッセージ(230)を受信する前に、
前記データ処理ハードウェア(910)によって、前記ユーザデバイス(110)上でのアプリケーション(512)の起動、またはリソースへのアクセスを要求する要求(220)を前記サービス(125)に送信することであって、前記要求(220)は、前記ユーザデバイス(110)に関連付けられた前記電話番号(342)を含む、送信することをさらに含み、
前記サービス(125)は、前記要求(220)によって受信された前記電話番号(342)を使用して、前記第1のメッセージ(230)を前記ユーザデバイス(110)に送信する、
請求項10から12のいずれか一項に記載の方法(700)。
【請求項14】
データ処理ハードウェア(810)と、
前記データ処理ハードウェア(810)と通信するメモリハードウェア(820)と、を備え、前記メモリハードウェアは命令(820)を記憶し、前記命令は、前記データ処理ハードウェア(810)によって実行されるとき、前記データ処理ハードウェア(810)に、
ユーザデバイス(110)上でアプリケーション(512)を起動する要求(220)を受信することであって、前記要求(220)は、前記ユーザデバイス(110)に関連付けられ、前記ユーザデバイス(110)を前記アプリケーション(512)に登録するために必要とされる一意フィーチャ(222)を含む、受信することと、
前記ユーザデバイス(110)上で前記アプリケーション(512)を起動するための選択可能リンク(231)を生成することであって、前記選択可能リンク(231)は、
前記アプリケーション(512)を識別するアプリケーション識別子(232)と、
前記一意フィーチャ(222)が前記ユーザデバイス(110)に関連付けられていることを検証するために使用される検証コード(236)と、を含む、生成することと、
前記選択可能リンク(231)を含む第1のメッセージ(230)を、前記一意フィーチャ(222)を使用して前記ユーザデバイス(110)に送信することと、を含む動作を実行させ、前記第1のメッセージ(230)は、前記ユーザデバイス(110)によって受信されるとき、前記ユーザデバイス(110)に、
前記ユーザデバイス(110)上で実行するグラフィカルユーザインターフェース(111)上に前記選択可能リンク(231)を表示することと、
前記グラフィカルユーザインターフェース(111)上に表示された前記選択可能リンク(231)の選択を示す選択指示を受信した後、前記アプリケーション識別子(232)を使用して前記アプリケーション(512)を起動することと、
前記ユーザデバイス(110)が、前記ユーザデバイス(110)を前記アプリケーション(512)に登録する確認を受信することに応じて、前記検証コード(236)を前記データ処理ハードウェア(810)に送信することと、を行わせるように構成されており、
前記動作は、前記ユーザデバイス(110)からの前記検証コード(236)を受信することに応じて前記ユーザデバイス(110)を前記アプリケーション(512)に登録することをさらに含む、
システム(100)。
【請求項15】
前記第1のメッセージ(230)は、前記ユーザデバイス(110)によって受信されるとき、前記ユーザデバイス(110)に、前記アプリケーション(512)を起動した後、前記グラフィカルユーザインターフェース(111)に確認ボタン(514)を表示することを行わせるようにさらに構成されており、前記確認ボタン(514)が前記ユーザデバイス(110)のユーザによって選択されることにより、前記ユーザデバイス(110)を前記アプリケーション(512)に登録するための前記ユーザによる確認が示され、前記ユーザデバイス(110)に、前記検証コード(236)のユーザ入力を必要とせずに、前記検証コード(236)を前記データ処理ハードウェア(810)へと送信させる、
請求項14に記載のシステム(100)。
【請求項16】
前記ユーザデバイス(110)からの前記検証コード(236)が受信されたときに前記ユーザデバイス(110)を前記アプリケーション(512)に登録することは、
前記第1のメッセージ(230)が前記ユーザデバイス(110)に送信されてから、前記検証コード(236)が前記ユーザデバイス(110)から受信されるまでの期間が有効期間閾値(238)を満たすかどうかを判定することと、
前記期間が前記有効期間閾値(238)を満たす場合、前記ユーザデバイス(110)を前記アプリケーション(512)に登録することと、を含む、
請求項14または15に記載のシステム(100)。
【請求項17】
前記ユーザデバイス(110)からの前記検証コード(236)が受信されたときに前記ユーザデバイス(110)を前記アプリケーション(512)に登録することは、
前記第1のメッセージ(230)が前記ユーザデバイス(110)に送信されてから、前記検証コード(236)が前記ユーザデバイス(110)から受信されるまでの期間が有効期間閾値(238)を満たすかどうかを判定することと、
前記期間が前記有効期間閾値(238)を満たさない場合、前記ユーザデバイス(110)を前記アプリケーション(512)に登録することを妨げることと、を含む、
請求項14から16のいずれか一項に記載のシステム(100)。
【請求項18】
前記動作は、前記期間が前記有効期間閾値(238)を満たさない場合、前記一意フィーチャ(222)を使用して第2のメッセージ(430)を前記ユーザデバイス(110)に送信することをさらに含み、前記第2のメッセージ(430)は、前記一意フィーチャ(222)が前記ユーザデバイス(110)に関連付けられていることを検証するために使用される新たな検証コード(236)を含む、
請求項17に記載のシステム(100)。
【請求項19】
前記選択可能リンク(231)はディープリンクを含み、該ディープリンクは、選択されたとき、前記アプリケーション(512)がまだ前記ユーザデバイス(110)にインストールされていない場合には、前記ユーザデバイス(110)に前記アプリケーション(512)をインストールさせる、あるいは、前記アプリケーション(512)が前記ユーザデバイス(110)に既にインストールされている場合は、前記ユーザデバイス(110)に前記アプリケーション(512)を開かせる、
請求項14から18のいずれか一項に記載のシステム(100)。
【請求項20】
前記第1のメッセージ(230)は、前記ユーザデバイス(110)によって受信されたとき、前記アプリケーション(512)を起動した後、前記アプリケーション(512)に前記ユーザデバイス(110)に関連付けられた前記一意フィーチャ(222)を投入するようにさらに構成されている、
請求項14から19のいずれか一項に記載のシステム(100)。
【請求項21】
前記一意フィーチャ(222)は電話番号(342)を含む、
請求項14から20のいずれか一項に記載のシステム(100)。
【請求項22】
前記動作は、前記ユーザデバイス(110)を前記アプリケーション(512)に登録した後、第2のメッセージ(430)を前記ユーザデバイス(110)に送信することをさらに含み、前記第2のメッセージ(430)は、前記ユーザデバイス(110)によって受信されるとき、前記ユーザデバイス(110)に、前記ユーザデバイス(110)の前記アプリケーション(512)への登録が成功したことを前記ユーザデバイス(110)のユーザに対して通知させる、
請求項14から21のいずれか一項に記載のシステム(100)。
【請求項23】
ユーザデバイス(110)のデータ処理ハードウェア(910)と、
前記データ処理ハードウェア(910)と通信するメモリハードウェア(920)と、を備え、前記メモリハードウェア(920)は命令を記憶し、前記命令は、前記データ処理ハードウェア(910)によって実行されるとき、前記データ処理ハードウェア(910)に、
前記ユーザデバイス(110)に関連付けられた電話番号(342)を検証するための選択可能リンク(231)を含む第1のメッセージ(230)を受信することであって、前記選択可能リンク(231)は、
前記電話番号(342)に対応するメタデータ(234)と、
前記電話番号(342)が前記ユーザデバイス(110)に関連付けられていることを検証するために使用される検証コード(236)と、を含む、受信することと、
前記ユーザデバイス(110)上で実行するグラフィカルユーザインターフェース(111)に前記選択可能リンク(231)を表示することと、
前記グラフィカルユーザインターフェース(111)に表示された前記選択可能リンク(231)の選択を示す選択指示を受信することと、
前記選択指示を受信した後、ネットワークを介して、前記データ処理ハードウェア(910)と通信するサービス(125)に、前記検証コード(236)を送信することであって、前記検証コード(236)は、前記サービス(125)が前記検証コード(236)を受信したことに応じて、前記サービス(125)に前記電話番号(342)が前記ユーザデバイス(110)に関連付けられていることを検証させる、送信することと、を含む動作を実行させる、
システム(100)。
【請求項24】
前記選択可能リンク(231)は、アプリケーション(512)を識別するアプリケーション識別子(232)をさらに含み、前記アプリケーション(512)は、前記ユーザデバイス(110)を前記アプリケーション(512)に登録するために、前記ユーザデバイス(110)に関連付けられた前記電話番号(342)を必要とし、前記動作は、前記選択指示を受信することに応じて、
前記アプリケーション識別子(232)を使用して、前記ユーザデバイス(110)上で前記アプリケーション(512)を起動することと、
前記アプリケーション(512)に、前記ユーザデバイス(110)に関連付けられた前記電話番号(342)を投入することと、をさらに含む、
請求項23に記載のシステム(100)。
【請求項25】
前記動作は、前記選択可能リンク(231)の選択を示す前記選択指示を受信した後、
前記グラフィカルユーザインターフェース(111)上に確認ボタン(514)を表示することと、
前記電話番号(342)が前記ユーザデバイス(110)に関連付けられていることを検証するべく、前記確認ボタン(514)の選択を示す第2の選択指示を受信することと、
前記第2の選択指示を受信することに応じて、前記検証コード(236)のユーザ入力を必要とせずに、前記検証コード(236)を前記サービス(125)に自動的に送信することと、をさらに含む、
請求項23または24に記載のシステム(100)。
【請求項26】
前記動作は、前記第1のメッセージ(230)を受信する前に、
前記ユーザデバイス(110)上でのアプリケーション(512)の起動、またはリソースへのアクセスを要求する要求(220)を前記サービス(125)に送信することであって、前記要求(220)は、前記ユーザデバイス(110)に関連付けられた前記電話番号(342)を含む、送信することをさらに含み、
前記サービス(125)は、前記要求(220)によって受信された前記電話番号(342)を使用して、前記第1のメッセージ(230)を前記ユーザデバイス(110)に送信する、
請求項23から25のいずれか一項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自動的なリンクベースのメッセージ検証に関する。
【背景技術】
【0002】
電話ベースの通信アプリケーション(アプリ)では、多くの場合、あるユーザが別のユーザをアプリケーションの使用に招待できるが、参加するにはユーザによる手動登録が必要である。通常、ユーザ(招待者)は、潜在的なユーザの既知のID(電子メールアドレスなど)に基づいて、または、潜在的なユーザのユーザデバイスに関連付けられた既知のフィーチャ(携帯電話番号など)に基づいて、潜在的なユーザに招待状を送信する。潜在的なユーザは、電子メールやテキストメッセージなどの一般的な通信方法で招待状を受信する場合がある。招待状に応じるためには、潜在的なユーザは、最初に通信アプリをダウンロード、インストール、および初期設定する必要があり得る。招待状には、検証コードが含まれている場合もある。通信アプリを初期設定した後、潜在的なユーザは、招待状を受理するために、検証コードを通信アプリに移す必要がある場合がある。例えば、これは、テキストメッセージから検証コードをコピーし、初期設定された通信アプリによって提供される入力フィールドにペーストすることによって行われることもあれば、検証コードを通信アプリに手動で転記することによって行われることもある。潜在的なユーザが招待状の受理に成功した後、招待者と潜在的なユーザは通信アプリを介して通信できるようになり得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示は、自動的なリンクベースのメッセージ検証に関する。
【課題を解決するための手段】
【0004】
本開示の一態様は、ユーザデバイスのフィーチャの自動検証を可能にするメッセージを生成するための方法を提供する。方法は、データ処理ハードウェアにおいて、ユーザデバイス上でアプリケーションを起動する要求を受信することを含む。要求は、ユーザデバイスに関連付けられた一意フィーチャを含み、一意フィーチャは、ユーザデバイスをアプリケーションに登録するために必要とされる。方法は、前記データ処理ハードウェアによって、前記ユーザデバイス上で前記アプリケーションを起動するための選択可能リンクを生成することを含む。前記選択可能リンクは、前記アプリケーションを識別するアプリケーション識別子と、前記一意フィーチャが前記ユーザデバイスに関連付けられていることを検証するために使用される検証コードと、を含む。方法は、前記データ処理ハードウェアにおいて、前記選択可能リンクを含む第1のメッセージを、前記一意フィーチャを使用して前記ユーザデバイスに送信することをさらに含む。前記第1のメッセージは、前記ユーザデバイスによって受信されるとき、前記ユーザデバイスに、前記ユーザデバイス上で実行するグラフィカルユーザインターフェース上に前記選択可能リンクを表示することを行わせる。前記第1のメッセージは、前記グラフィカルユーザインターフェースに表示された前記選択可能リンクの選択を示す選択指示を受信した後、前記アプリケーション識別子を使用して前記アプリケーションを起動することと、検証コードを送信することとを行うようにさらに構成されている。前記ユーザデバイスが、前記ユーザデバイスを前記アプリケーションに登録する確認を受信することに応じて、前記検証コードは、前記データ処理ハードウェアに送信される。方法は、データ処理ハードウェアによって、ユーザデバイスからの前記検証コードを受信することに応じてユーザデバイスをアプリケーションに登録することをさらに含む。
【0005】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含み得る。一部の実装形態では、前記第1のメッセージは、前記ユーザデバイスによって受信されるとき、前記ユーザデバイスに、前記アプリケーションを起動した後、前記グラフィカルユーザインターフェースに確認ボタンを表示することを行わせるようにさらに構成されている。前記確認ボタンが前記ユーザデバイスのユーザによって選択されることにより、前記ユーザデバイスを前記アプリケーションに登録するための前記ユーザによる確認が示され、前記ユーザデバイスに、前記検証コードのユーザ入力を必要とせずに、前記検証コードを前記データ処理ハードウェアへと送信させる。一部の例では、前記ユーザデバイスからの前記検証コードが受信されたときに前記ユーザデバイスを前記アプリケーションに登録することは、前記第1のメッセージが前記ユーザデバイスに送信されてから、前記検証コードが前記ユーザデバイスから受信されるまでの期間が有効期間閾値を満たすかどうかを判定することを含む。前記期間が前記有効期間閾値を満たす場合、方法は、前記ユーザデバイスを前記アプリケーションに登録することを含む。あるいは、前記期間が前記有効期間閾値を満たさない場合、方法は、前記ユーザデバイスを前記アプリケーションに登録することを妨げることを含む。
【0006】
方法は、前記期間が前記有効期間閾値を満たさない場合、前記一意フィーチャを使用して第2のメッセージを前記ユーザデバイスに送信することをさらに含んでいてもよい。前記第2のメッセージは、前記一意フィーチャが前記ユーザデバイスに関連付けられていることを検証するために使用される新たな検証コードを含む。任意選択により、前記選択可能リンクはディープリンクを含み、該ディープリンクは、選択されたとき、前記アプリケーションがまだ前記ユーザデバイスにインストールされていない場合には、前記ユーザデバイスに前記アプリケーションをインストールさせる、および/または、前記アプリケーションが前記ユーザデバイスに既にインストールされている場合は、前記ユーザデバイスに前記アプリケーションを開かせる。一部の実施形態では、前記第1のメッセージは、前記ユーザデバイスによって受信されたとき、前記アプリケーションを起動した後、前記アプリケーションに前記ユーザデバイスに関連付けられた前記一意フィーチャを投入するようにさらに構成されている。前記一意フィーチャは電話番号を含み得る。一部の例では、方法は、前記ユーザデバイスを前記アプリケーションに登録した後、第2のメッセージを前記ユーザデバイスに送信することをさらに含む。前記第2のメッセージは、前記ユーザデバイスによって受信されるとき、前記ユーザデバイスに、前記ユーザデバイスの前記アプリケーションへの登録が成功したことを前記ユーザデバイスのユーザに対して通知させる。
【0007】
本開示の別態様によれば、ユーザデバイスのデータ処理ハードウェアにおいて、前記ユーザデバイスに関連付けられた電話番号を検証するための選択可能リンクを含む第1のメッセージを受信することを含む方法が提供される。前記選択可能リンクは、前記電話番号に対応するメタデータと、前記電話番号が前記ユーザデバイスに関連付けられていることを検証するために使用される検証コードと、を含む。方法は、前記データ処理ハードウェアによって、前記ユーザデバイス上で実行するグラフィカルユーザインターフェース上に前記選択可能リンクを表示することと、前記データ処理ハードウェアにおいて、前記グラフィカルユーザインターフェースに表示された前記選択可能リンクの選択を示す選択指示を受信することと、をさらに含む。前記選択指示を受信した後、方法は、前記データ処理ハードウェアによって、ネットワークを介して、前記データ処理ハードウェアと通信するサービスに、前記検証コードを送信することを含む。前記検証コードは、前記サービスが前記検証コードを受信したことに応じて、前記サービスに前記電話番号が前記ユーザデバイスに関連付けられていることを検証させる。
【0008】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含み得る。一部の実装形態では、前記選択可能リンクは、アプリケーションを識別するアプリケーション識別子をさらに含み、前記アプリケーションは、前記ユーザデバイスを前記アプリケーションに登録するために、前記ユーザデバイスに関連付けられた前記電話番号を必要とする。方法は、前記選択指示を受信することに応じて、前記データ処理ハードウェアによって、前記アプリケーション識別子を使用して、前記ユーザデバイス上で前記アプリケーションを起動することと、前記データ処理ハードウェアによって、アプリケーションに、前記ユーザデバイスに関連付けられた前記電話番号を投入することと、をさらに含む。前記選択可能リンクの選択を示す前記選択指示を受信した後、方法は、前記データ処理ハードウェアによって、前記グラフィカルユーザインターフェース上に確認ボタンを表示することと、前記データ処理ハードウェアにおいて、前記電話番号が前記ユーザデバイスに関連付けられていることを検証するべく、前記確認ボタンの選択を示す第2の選択指示を受信することと、を含み得る。前記第2の選択指示を受信することに応じて、方法は次いで、前記データ処理ハードウェアによって、前記検証コードのユーザ入力を必要とせずに、前記検証コードを前記サービスに自動的に送信することをさらに含む。
【0009】
一部の例では、方法は、前記第1のメッセージを受信する前に、前記データ処理ハードウェアによって、前記ユーザデバイス上でのアプリケーションの起動、および/またはリソースへのアクセスを要求する要求を前記サービスに送信することを含む。前記要求は、前記ユーザデバイスに関連付けられた前記電話番号を含み、前記サービスは、前記要求によって受信された前記電話番号を使用して、前記第1のメッセージを前記ユーザデバイスに送信する。
【0010】
本開示の別態様によれば、データ処理ハードウェアと、前記データ処理ハードウェアと通信するメモリハードウェアと、を備えるシステムが提供される。前記メモリハードウェアは命令を記憶し、前記命令は、前記データ処理ハードウェアによって実行されるとき、前記データ処理ハードウェアに動作を実行させる。前記動作は、ユーザデバイス上でアプリケーションを起動する要求を受信することを含む。要求は、ユーザデバイスに関連付けられた一意フィーチャを含み、一意フィーチャは、ユーザデバイスをアプリケーションに登録するために必要とされる。動作は、前記ユーザデバイス上で前記アプリケーションを起動するための選択可能リンクを生成することを含む。前記選択可能リンクは、前記アプリケーションを識別するアプリケーション識別子と、前記一意フィーチャが前記ユーザデバイスに関連付けられていることを検証するために使用される検証コードと、を含む。動作は、前記選択可能リンクを含む第1のメッセージを、前記一意フィーチャを使用して前記ユーザデバイスに送信することをさらに含む。前記第1のメッセージは、前記ユーザデバイスによって受信されるとき、前記ユーザデバイスに、前記ユーザデバイス上で実行するグラフィカルユーザインターフェース上に前記選択可能リンクを表示することを行わせる。前記第1のメッセージは、前記グラフィカルユーザインターフェースに表示された前記選択可能リンクの選択を示す選択指示を受信した後、前記アプリケーション識別子を使用して前記アプリケーションを起動することと、検証コードを送信することとを行うようにさらに構成されている。前記検証コードは前記検証コードに関連付けられており、前記ユーザデバイスが、前記ユーザデバイスを前記アプリケーションに登録する確認を受信することに応じて、前記検証コードは、前記データ処理ハードウェアに送信される。動作は、ユーザデバイスからの前記検証コードを受信することに応じてユーザデバイスをアプリケーションに登録することをさらに含む。
【0011】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含み得る。一部の実装形態では、前記第1のメッセージは、前記ユーザデバイスによって受信されるとき、前記ユーザデバイスに、前記アプリケーションを起動した後、前記グラフィカルユーザインターフェースに確認ボタンを表示することを行わせるようにさらに構成されている。前記確認ボタンが前記ユーザデバイスのユーザによって選択されることにより、前記ユーザデバイスを前記アプリケーションに登録するための前記ユーザによる確認が示され、前記ユーザデバイスに、前記検証コードのユーザ入力を必要とせずに、前記検証コードを前記データ処理ハードウェアへと送信させる。一部の例では、前記ユーザデバイスからの前記検証コードが受信されたときに前記ユーザデバイスを前記アプリケーションに登録することは、前記第1のメッセージが前記ユーザデバイスに送信されてから、前記検証コードが前記ユーザデバイスから受信されるまでの期間が有効期間閾値を満たすかどうかを判定することを含む。前記期間が前記有効期間閾値を満たす場合、動作は、前記ユーザデバイスを前記アプリケーションに登録することを含む。あるいは、前記期間が前記有効期間閾値を満たさない場合、動作は、前記ユーザデバイスを前記アプリケーションに登録することを妨げることを含む。
【0012】
動作は、前記期間が前記有効期間閾値を満たさない場合、前記一意フィーチャを使用して第2のメッセージを前記ユーザデバイスに送信することをさらに含んでいてもよい。前記第2のメッセージは、前記一意フィーチャが前記ユーザデバイスに関連付けられていることを検証するために使用される新たな検証コードを含む。任意選択により、前記選択可能リンクはディープリンクを含み、該ディープリンクは、選択されたとき、前記アプリケーションがまだ前記ユーザデバイスにインストールされていない場合には、前記ユーザデバイスに前記アプリケーションをインストールさせる、および/または、前記アプリケーションが前記ユーザデバイスに既にインストールされている場合は、前記ユーザデバイスに前記アプリケーションを開かせる。一部の実施形態では、前記第1のメッセージは、前記ユーザデバイスによって受信されたとき、前記アプリケーションを起動した後、前記アプリケーションに前記ユーザデバイスに関連付けられた前記一意フィーチャを投入するようにさらに構成されている。前記一意フィーチャは電話番号を含み得る。一部の例では、動作は、前記ユーザデバイスを前記アプリケーションに登録した後、第2のメッセージを前記ユーザデバイスに送信することをさらに含む。前記第2のメッセージは、前記ユーザデバイスによって受信されるとき、前記ユーザデバイスに、前記ユーザデバイスの前記アプリケーションへの登録が成功したことを前記ユーザデバイスのユーザに対して通知させる。
【0013】
本開示の別態様によれば、ユーザデバイスのデータ処理ハードウェアと、前記データ処理ハードウェアと通信するメモリハードウェアと、を備えるシステムが提供される。前記メモリハードウェアは命令を記憶し、前記命令は、前記データ処理ハードウェアによって実行されるとき、前記データ処理ハードウェアに動作を実行させる。動作は、前記ユーザデバイスに関連付けられた電話番号を検証するための選択可能リンクを含む第1のメッセージを受信することを含む。前記選択可能リンクは、前記電話番号に対応するメタデータと、前記電話番号が前記ユーザデバイスに関連付けられていることを検証するために使用される検証コードと、を含む。動作は、前記ユーザデバイス上で実行するグラフィカルユーザインターフェース上に前記選択可能リンクを表示することと、前記グラフィカルユーザインターフェースに表示された前記選択可能リンクの選択を示す選択指示を受信することと、をさらに含む。前記選択指示を受信した後、動作は、ネットワークを介して、前記データ処理ハードウェアと通信するサービスに、前記検証コードを送信することを含む。前記検証コードは、前記サービスが前記検証コードを受信したことに応じて、前記サービスに前記電話番号が前記ユーザデバイスに関連付けられていることを検証させる。
【0014】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含み得る。一部の実装形態では、前記選択可能リンクは、アプリケーションを識別するアプリケーション識別子をさらに含み、前記アプリケーションは、前記ユーザデバイスを前記アプリケーションに登録するために、前記ユーザデバイスに関連付けられた前記電話番号を必要とする。動作は、前記選択指示を受信することに応じて、前記アプリケーション識別子を使用して、前記ユーザデバイス上で前記アプリケーションを起動することと、アプリケーションに、前記ユーザデバイスに関連付けられた前記電話番号を投入することと、をさらに含む。前記選択可能リンクの選択を示す前記選択指示を受信した後、動作は、前記グラフィカルユーザインターフェース上に確認ボタンを表示することと、前記電話番号が前記ユーザデバイスに関連付けられていることを検証するべく、前記確認ボタンの選択を示す第2の選択指示を受信することと、を含み得る。前記第2の選択指示を受信することに応じて、動作は次いで、前記検証コードのユーザ入力を必要とせずに、前記検証コードを前記サービスに自動的に送信することをさらに含む。
【0015】
一部の例では、動作は、前記第1のメッセージを受信する前に、前記ユーザデバイス上でのアプリケーションの起動、および/またはリソースへのアクセスを要求する要求を前記サービスに送信することを含む。前記要求は、前記ユーザデバイスに関連付けられた前記電話番号を含み、前記サービスは、前記要求によって受信された前記電話番号を使用して、前記第1のメッセージを前記ユーザデバイスに送信する。
【0016】
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、説明、図面、および特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【0017】
図1】リンクベースのフィーチャの検証の例示的なシステムの概略図。
図2図1のシステムのメッセージジェネレータの例示的な構成要素の概略図。
図3】リンクベースのフィーチャの検証のシステムに関連付けられた例示的なメッセージの概略図。
図4図1のシステムのメッセージ有効化部の例示的な構成要素の概略図。
図5】リンクベースのフィーチャの検証に係る、図1におけるシステムのフィーチャ検証部とユーザデバイスとの間の相互作用の概略図。
図6】自動的なリンクベースのフィーチャの検証の例示的な方法のフローチャート。
図7】自動的なリンクベースのメッセージの検証の別の例示的な方法のフローチャート。
図8】本明細書で説明されるシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図。
図9】本明細書で説明されるシステムおよび方法を実装するために使用され得る例示的なユーザデバイスの概略図。
【発明を実施するための形態】
【0018】
さまざまな図面での同様の参照番号は、同様の要素を示す。
電話ベースの通信アプリケーション(アプリ)では、通常、現ユーザが潜在的ユーザを参加するよう招待する必要がある。通常、招待者(例えば、アプリケーションの現ユーザ)は、潜在的なユーザの既知のIDに基づいて、または、潜在的なユーザに関連付けられた既知のフィーチャ(携帯電話番号、メールアドレス、ユーザ名など)に基づいて、潜在的なユーザに招待状を送信する。潜在的ユーザがユーザデバイスで招待状を受信し、招待状を受理した後、アプリケーションは、ユーザデバイスのフィーチャ(例えば、ユーザデバイスの電話番号)の所有権または制御を検証する。一般に、アプリケーション(またはアプリケーションに関連付けられたサービス)は、例えばショートメッセージサービス(SMS)を介して、検証コードを含むメッセージをユーザデバイスに送信する。既知のアイデンティティまたは既知のフィーチャを検証するには、潜在的ユーザは、メッセージを開き、検証コードを取得し、アプリケーションをインストールし(以前にインストールされていない場合)、アプリケーションを実行し、検証コードを提供する(例えば、手動入力またはコピーアンドペースト)といった、非効率的なプロセスを行わなければならない。本開示の実装形態によれば、ユーザデバイスが前述のステップのいくつかを自動化することを可能にするのに十分な情報を含むメッセージを生成することによって、これらの技術的非効率性が解決される。
【0019】
本明細書の実装形態は、ユーザデバイスのフィーチャ(例えば、電話番号)の自動検証を可能にするメッセージを生成するように構成されたフィーチャ検証部に関する。図1を参照して、一部の実装形態では、例示的なシステム100は、招待者9およびユーザ10に関連付けられ、ネットワーク122を介してリモートシステム120と通信する1つまたは複数のユーザデバイス109、110を含む。ユーザデバイス109、110には、スマートフォン、タブレット、スマートウォッチなどのモバイルデバイスが含まれる。リモートシステム120は、スケーラブル/エラスティックコンピューティングリソース124(例えば、データ処理ハードウェア)および/または記憶リソース126(例えば、メモリハードウェア)を有する単一のコンピュータ、複数のコンピュータ、または分散システム(例えば、クラウド環境)であり得る。ネットワーク122は、インターネットなどのグローバル通信ネットワークであり得る。図1は、同じネットワーク122を介して通信するユーザデバイス109、110を示しているが、ユーザデバイス109、110は、互いに異なるネットワークを介してリモートシステム120と通信してもよい。一部の例では、ネットワークは、SMS、マルチメディアメッセージングサービス(MMS)、リッチコミュニケーションサービス(RCSまたは「チャット」)のユニバーサルプロファイル、またはその他の適切な通信プロトコルをサポートする電話ネットワークである。一部の例では、招待者9は、電話ベースの通信アプリケーション(アプリ)を介してユーザ10と通信することを望んでいる。通信アプリは、音声、テキスト、写真ファイル共有、またはその他の形式の通信によって通信するために使用され得る。示される例では、招待者9は、ユーザデバイス110上で実行するモバイルアプリケーション512を使用して通信するようにユーザ10を招待する。例えば、招待者9のユーザデバイス109は、招待者9との通信を容易にするようにユーザ10に関連付けられたユーザデバイス110上でのモバイルアプリケーション512の登録および起動の少なくとも一方を行うようユーザ10を招待する登録要求220をリモートシステム120に送信することによって、モバイルアプリケーション512を使用して通信するべくユーザ10を招待し得る。一部の例では、アプリケーション512に関連付けられたサービス125は、招待者9に関連付けられたユーザデバイス109から登録要求220を受信し、リモートシステム120上で実行するフィーチャ検証部130に登録要求220を送信する。一部の例では、アプリケーション512に関連付けられたサービス125は、リモートシステム120上で実行し、フィーチャ検証部130を実装する。
【0020】
示されている例では、リモートシステム120は、招待者9から登録要求220を受信するフィーチャ検証部130を実行する。フィーチャ検証部130は、メッセージジェネレータ210および有効化部410を実装することができる。メッセージジェネレータ210は、ユーザデバイス109、または、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、または他のコンピューティングデバイスなど、招待者9に関連付けられた別のデバイスから受信した登録要求220を処理するように構成される。
【0021】
以下でより詳細に説明するように、メッセージジェネレータ210は、登録要求220に基づいて検証メッセージ230を生成する。リモートシステム120は、検証メッセージ230をユーザ10のユーザデバイス110に送信する。検証メッセージ230は、選択可能リンク231を含む。示されている例では、ユーザデバイス110は、検証メッセージ230の受信に応じて、ユーザデバイス110の画面113上に選択可能リンク231を表示するグラフィカルユーザインターフェース111を実行する。ユーザデバイス110は、アプリケーション512をインストール、起動、および/または登録するために(例えば、ユーザ10による入力を介して)選択可能リンク231の選択を示す選択指示を受信することができる(以下でより詳細に説明する)。一部の例では、フィーチャ検証部130は、ユーザデバイス110が検証メッセージ230を受信した後、ユーザデバイス110から確認メッセージ420を受信する。ここで、フィーチャ検証部130の有効化部410は、確認メッセージ420を処理し、確認メッセージ420に基づいて登録通知430を生成するように構成される。一部の例では、有効化部410は、モバイルアプリケーション512に関連付けられたオンラインサービス125にユーザ10を登録する。次に、リモートシステム120は、検証通知430をユーザ10のユーザデバイス110に送信して、ユーザデバイス110および/または関連付けられた一意フィーチャ222(図2)がモバイルアプリケーション512および/または関連付けられたサービス125への登録に成功したことをユーザ10に通知する。例えば、サービス125は、モバイルアプリケーション512が、対応するユーザデバイス109、110にインストールされ、登録されている場合において、2つ以上のユーザデバイス109、110がモバイルアプリケーション512を使用して、電話またはメッセージング(例えば、ボイスまたはテキスト)を介して互いに通信することを可能にする通信サービスであり得る。リモートシステム120はまた、招待者9(または他の任意のユーザ)に登録が成功したことを通知することができる。
【0022】
登録要求220はまた、例えば二段階認証のために、ユーザ10を含む他のユーザから送られてくる場合がある。例えば、ユーザ10は、例えばユーザ名とパスワードに加えて検証として、ユーザ10がユーザデバイス110を所有していることの検証を必要とする、ユーザデバイス110上のリソースまたはアプリケーション512(例えば、銀行アプリケーション)へのアクセスを要求することができる。この例では、ユーザ10は、リソースまたはアプリケーション512へのアクセスを要求することができ、次に、リモートシステム120は、ユーザデバイス110または関連サービス125から要求(この場合は認証要求)を受信することができる。次に、リモートシステム120は、選択可能リンク231を含めてユーザデバイス110に送信する検証メッセージ230を生成できる。次に、ユーザ10は、ユーザデバイス110の所有を検証するために、選択可能リンク231の選択を示すことができる。メッセージ230は、ユーザ10が情報を入力することを必要とせず、他の潜在的に関連する情報(例えば、ユーザ名)と共に、要求するアプリケーション512(すなわち、銀行アプリケーション)に検証コード236(図2)を供給するように構成され得る。
【0023】
図2は、メッセージジェネレータ210の概略図200を示している。メッセージジェネレータ210は、例えば、ユーザデバイス109上で実行するアプリケーション512を介して、招待者9のユーザデバイス109から登録要求220を受信する。登録要求220は、ユーザ10のユーザデバイス110に関連付けられた一意フィーチャ222を含む。一意フィーチャ222は、ユーザデバイス110をアプリケーション512に登録したり、アプリケーション512を使用したりするために必要とされる(例えば、一意フィーチャ222は、ユーザデバイス110の所有または制御を検証することができる)。一部の例では、一意フィーチャ222は、ユーザデバイス110に関連付けられた電話番号342(図3)である。これに代えて、一意フィーチャ222は、電子メールアドレス、ユーザ名、メディアアクセス制御(MAC)アドレス、またはユーザデバイス110に関連付けられたその他のフィーチャ/識別子である。登録要求220の受信に応じて、メッセージジェネレータ210は、検証メッセージ230を生成する。検証メッセージ230は、ユーザデバイス110の登録を要求しているモバイルアプリケーション512を識別するアプリケーション識別情報(ID)232を含む。一部の例では、アプリケーションID232は、アプリ512に関連付けられた一意の名前または数字であり、オンラインアプリケーションリポジトリ540(図5)を介してメッセージジェネレータ210によって取得される。ただし、他の形式のアプリケーションID232も可能である。検証メッセージ230は、ユーザデバイス110の一意フィーチャ222に関連付けられたメタデータ234と、検証コード236とを含む。フィーチャ222に関連付けられたメタデータ234は、例えば、ユーザデバイス110上で実行するためにアプリケーション512を起動および/または初期設定するために使用され得る。検証コード236は、以下でより詳細に説明されるように、検証メッセージ230に一意に関連付けられた字、記号、および/または数字の組み合わせであり得る。任意選択により、検証メッセージ230は、メッセージ230の有効期限を確立するために使用される有効期間238をさらに含んでいてもよく、これによって、検証コード236は、有効期間238の満了時に無効となる。一部の例では、検証メッセージ230には、検証コード236の有効期間238を示すトークンが含まれている。
【0024】
一部の実装形態では、メッセージジェネレータ210は、検証メッセージ230を構成して、ユーザデバイス110に、画面113(図1)に表示するためにユーザデバイス110上で実行するグラフィカルユーザインターフェース(GUI)111(図1)上で選択可能リンク231(図1および図5)として検証メッセージ230を表示させる。GUI111が、そこに表示された選択可能リンク231の選択を示す選択指示を受信すると、次に、検証メッセージ230は、アプリケーションID232を使用してユーザデバイス110上で、アプリケーション512をインストールするように構成され(以前にユーザデバイス110にインストールされていない場合)、アプリケーション512を起動するように構成されている。アプリケーション512がユーザデバイス110によって起動されると、ユーザデバイス110上で実行するGUI111は、ユーザデバイス110をアプリケーション512に登録することに同意することをユーザ10に要求するか促す確認通知(514)を表示することができる。例えば、GUI111は、ユーザ10がユーザデバイス110および/または関連付けられた一意フィーチャ222をアプリケーション512に登録することに同意することを示すものとして、ボタンを選択するか、音声入力を提供するか、他のユーザ入力を提供するようにユーザ10に促すことができる。その後、ユーザデバイス110は、確認メッセージ420(図1および図4)をフィーチャ検証部130に送信することができ、これにより、ユーザデバイス110および/または関連付けられた一意フィーチャ222をアプリケーション512に登録することにユーザ10が同意することが示される。一部の実施形態では、登録は、選択可能リンク231の選択を示す以外に、ユーザの同意を必要とせずに行うことができる(すなわち、GUI111は、追加の確認を提供するようにユーザ10に促さない)。
【0025】
図3を参照して、一部の実装形態では、概略図300は、一意フィーチャ222および/または関連付けられたユーザデバイス110をアプリケーション512に登録するために、ユーザデバイス110がアプリケーション512を自動的にインストールおよび/または起動して必要な登録情報を投入することを可能にするのに十分な情報(例えば、アプリID232、メタデータ234、および検証コード236)を提供する、ディープリンク(例えば、ファイヤーベースディープリンク(Firebase Dynamic Link))を含む検証メッセージ230を示している。例えば、メタデータ234は、ユーザデバイス110に関連付けられた国コード340および電話番号342を含み得る。
【0026】
図4は、ユーザデバイス110から確認メッセージ420を受信することと、受信した確認メッセージ420に基づいて、一意フィーチャ222および/またはユーザデバイス110をアプリケーション512に登録するかどうかを決定することと、を行うフィーチャ検証部130の有効化部410の概略図400を示している。ユーザデバイス110のユーザ10が、一意フィーチャ222および/またはユーザデバイス110をアプリケーション512に登録することに同意した後、確認メッセージ420は、ユーザデバイス110によって生成され、ユーザデバイス110から送信され得る。確認メッセージ420は、ユーザ10による受理を確認し、および/または、アプリケーション512について、ユーザデバイス110に関連付けられたフィーチャ222が検証され、ユーザ10が一意フィーチャ222をアプリケーション512に登録することに同意することを確認する。例えば、確認メッセージ420は、メッセージジェネレータ210によって生成されて以前にユーザデバイス110に送信された検証メッセージ230に含められた、検証コード236(または検証コード236に関連付けられたコード)を含む。したがって、確認メッセージ420の受信に応じて、有効化部410は、一意フィーチャ222の検証に関し、最初に検証コード236が有効であるかどうか(例えば、検証メッセージ230で提供される検証コード236と一致するか)を判定するように構成される。検証コード236の有効性は、使用に関し、検証コード236が以前に確認されていないことをさらに必要とする場合がある(つまり同じ検証コード236の再利用を防ぐ)。任意選択により、有効化部410は、検証コード236に関連付けられた有効期間238が満たされている(例えば、期限が切れていない)かどうかを判定することができる。例えば、有効化部410は、メッセージ230がユーザデバイス110に送信されてから、確認メッセージ420がユーザデバイス110から受信されるまでの期間が有効期間238を満たすかどうかを判定してもよい。例えば、有効期間238は、期間が有効期間238未満の場合に満たされ得る。期間は、検証コード236が期限切れであると判定する前に、検証コード236が有効化部410によって受信されなければならない指定された時間を単に含むことができる。確認メッセージ420は、検証コード236と、検証コード236に関連付けられた有効期間238とを示す単一のトークンを含み得る。一部の例では、有効期間238は確認メッセージ420に含まれておらず、有効化部410は、検証コード236(またはメッセージ230のフィーチャを一意に識別する他のもの)を関連付けられた有効期間238にマッピングするログにアクセスすることによって、有効期間238を取得する。確認メッセージ420で受信した検証コード236が有効であり、検証コード236に関連付けられた有効期間238(該当する場合)が満たされていると判定すると、有効化部410は、一意フィーチャ222および/またはユーザデバイス110をアプリケーション512および/またはアプリケーション512に関連付けられたオンラインサービス125に登録することができる(または、別のサービスがフィーチャ222および/またはユーザデバイス110を登録するために必要な情報を提供する)。示されている例では、フィーチャ検証部130の有効化部410は、登録通知430を生成し、ユーザデバイス110に送信して、一意フィーチャ222および/またはユーザデバイス110のアプリケーション512への登録が成功したことをユーザ10に通知する。一方、有効化部410が、検証コード236の有効期間238が満了した(例えば、満たされていない)、または検証コード236が以前に使用されていると判定した場合、有効化部410は、ユーザデバイス110によるアプリケーション512への登録を妨げる。一部の例では、メッセージ230が送信されてからの期間が有効期間238を満たさない場合、第2のメッセージが、一意フィーチャ222を使用してユーザデバイス110に送信される。第2のメッセージは、一意フィーチャ222がユーザデバイス110に関連付けられていることを検証するために使用される新たな検証コード236を含む。有効期間238は、有効期間閾値238と呼ばれることもある。登録に1回以上失敗した後(例えば、有効期間238が満たされていない場合)、ユーザ10は、第2の(または後続の)メッセージからの新たな検証コード236を手動で入力することを必要とされ得る。
【0027】
図5の概略図500を参照して、一部の実装形態では、システム100は、フィーチャ検証部130およびアプリケーションリポジトリ540と通信するユーザデバイス110を含む。フィーチャ検証部130は、リモートシステム120上で実行し、ネットワーク122を介してユーザデバイス110と通信することができる。示されている例では、ユーザデバイス110は、図1のユーザ10に関連付けられたユーザデバイス110を含み得る。この例は、ユーザデバイス110に関連付けられた一意フィーチャ222をアプリケーション512に登録するのに検証を要求しているフィーチャ検証部130から検証メッセージ230を受信するユーザデバイス110を示している。フィーチャ検証部120は、ユーザデバイス110に関連付けられた一意フィーチャ(例えば、電話番号)を使用して、(例えば、電話番号222に送信されるテキストメッセージを介して)検証メッセージ230をユーザデバイス110に送信する。
【0028】
検証メッセージ230の受信に応じて、ユーザデバイス110は、GUI111上に検証メッセージ230を選択可能リンク231として表示し、選択可能リンク231は、ユーザ10によって選択されると、ユーザデバイス110に、検証メッセージ230に含まれるアプリケーション識別子232によって識別されるアプリケーション512を起動させる。一部の例では、ユーザデバイス110は、検証メッセージ230の受信に応じて、ユーザ10が検証メッセージ230に対応する選択可能リンク231を選択することを必要とせずに、単にアプリケーション512を起動する。ユーザデバイス110は、受信時に検証メッセージ230を処理するためのメッセージハンドラ520を実行することができる。アプリケーション512がユーザデバイス110にまだインストールされていないシナリオでは、メッセージハンドラ520は(自動的にまたはユーザプロンプトを介して)、例えばユーザデバイス110にインストールするためのアプリケーションリポジトリ540から、アプリケーション512を(例えば、ダウンロードを介して)取得することができる。アプリケーション512が起動した後、すなわち、ユーザデバイス110上で実行を開始した後、アプリケーション512は、一意フィーチャ222(例えば、国コード340および電話番号342)および/またはユーザデバイス110をアプリケーション512に登録するため、検証メッセージ230から登録情報を取得する。一部の実装形態では、ユーザデバイス110がアプリケーション512を起動すると、アプリケーション512は、ユーザデバイス110の画面113に表示されるGUI111上に確認通知514を表示し、これにより、ユーザ10は、一意フィーチャ222および/またはユーザデバイス110のアプリケーション512へ登録することを確認できる。確認通知514は、ユーザ10が登録することを確認するために選択することができるグラフィック要素(例えば、ボタン)を含み得る。追加的にまたはこれに代えて、確認通知514は、手動入力を提供することによって登録することを確認するようにユーザ10に促すプロンプト(視覚的および/またはオーディオ)を含み得る(例えば、GUI111上のグラフィック要素をタップすること、ユーザデバイス110上の物理的ボタンを押すこと、GUI111上で、またはユーザデバイス110の近くでジェスチャを実行すること、音声入力を提供すること、所定の方法でユーザデバイス110を動かすことなど)。メッセージハンドラ520は、ユーザデバイス110および/または関連付けられた一意フィーチャ222をアプリケーション512に登録することのユーザ10による確認を示す選択指示をユーザデバイス110が受信したことに応じて、確認メッセージ420を生成してリモートシステム120に送信するように構成された確認ジェネレータ522を実装することができる。本明細書で使用されるように、ユーザデバイス110によって受信された選択指示により、ユーザデバイス110は、一意フィーチャ222をアプリケーション512に関し検証および登録するために使用する検証コード236が含む、確認メッセージ420を生成し、有効化部410に送信する(図4)。
【0029】
図6は、ユーザデバイス110のフィーチャ222の自動検証を可能にするメッセージ230を生成するための例示的な方法600のフローチャートである。フローチャートは、ユーザデバイス110上でアプリケーション512を起動する要求220をデータ処理ハードウェア810(図9)で受信することにより、動作602で開始する。要求220は、ユーザデバイス110に関連付けられた一意フィーチャ222を含み、一意フィーチャ222は、ユーザデバイス110上でアプリケーション512を使用するために、アプリケーション512に登録するために必要とされる。一意フィーチャ222は、電話番号342および関連付けられた国コード340を含み得る。一意フィーチャ222は、任意選択により、ユーザ名、電子メールアドレス、MACアドレス、またはユーザデバイス110を一意に識別する他のフィーチャを含むことができる。方法600は、動作604において、データ処理ハードウェア810によって、ユーザデバイス110上でアプリケーション512を起動するように構成された選択可能リンク231を生成することをさらに含む。選択可能リンク231は、アプリケーション512を識別するアプリケーション識別子232を含む。選択可能リンク231は、一意フィーチャ222がユーザデバイス110に関連付けられていることを検証するために使用される検証コード236をさらに含む。選択可能リンク231はディープリンクを含んでいてもよく、該ディープリンクは、選択されたとき、アプリケーション512がまだユーザデバイス110にインストールされていない場合には、ユーザデバイス110にアプリケーション512をインストールさせる、および/または、アプリケーション512がユーザデバイス110に既にインストールされている場合は、ユーザデバイス110にアプリケーション512を開かせる。検証メッセージ230は、選択可能リンク231を含み得る。
【0030】
動作606において、方法600は、選択可能リンク231を含む第1のメッセージ(例えば、検証メッセージ)230を、一意フィーチャ222を使用してユーザデバイス110に送信することと、を含む。例えば、一意フィーチャ222は、データ処理ハードウェア810が第1のメッセージ230を送信するために使用する、ユーザデバイス110に関連付けられた電話番号342であってもよい。第1のメッセージは、ユーザデバイス110に、ユーザデバイス110の画面113に表示されるGUI111上に選択可能リンク231を表示させるように構成されるとともに、GUI111に表示された選択可能リンク231の選択を示す選択指示を受信した後、アプリケーション識別子232を使用してアプリケーション512を起動させるように構成されている。一部の例では、第1のメッセージ230は、ユーザデバイス110によって受信されたとき、アプリケーション512を起動した後、アプリケーション512にユーザデバイス110に関連付けられた一意フィーチャ222を投入するようにさらに構成されている。ユーザデバイス110が、ユーザデバイス110をアプリケーション512に登録する確認を受信することに応じて、検証コード236はデータ処理ハードウェア810に送信される。一部の実装形態では、第1のメッセージ230は、ユーザデバイス110によって受信されるとき、ユーザデバイス110に、アプリケーション512が起動すると、GUI111に確認通知514を表示することを行わせるようにさらに構成されている。確認通知514はボタンを含んでいてもよく、ボタンがユーザデバイス110のユーザ10によって選択されることにより、ユーザデバイス110をアプリケーション512に登録するためのユーザ10による確認が示され、ユーザデバイス110に、検証コード236のユーザ入力を必要とせずに、検証コード236をデータ処理ハードウェア810へと送信させる。
【0031】
方法600は、動作608において、データ処理ハードウェア810によって、ユーザデバイス110からの検証コード236を受信することに応じてユーザデバイス110をアプリケーション512に登録することを含む。一部の例では、ユーザデバイス110からの検証コード236が受信されたときにユーザデバイス110をアプリケーション512に登録することは、第1のメッセージ230がユーザデバイス110に送信されてから、検証コード236がユーザデバイス110から受信されるまでの期間が、検証コード236に関連付けられた有効期間閾値238を満たすかどうかを判定することを含む。期間が有効期間閾値236を満たす場合、ユーザデバイス110はアプリケーション512に登録される。あるいは、期間が有効期間閾値236を満たさない場合、データ処理ハードウェア810は、ユーザデバイス110に係るアプリケーション512への登録することを妨げる。期間が有効期間閾値を満たさない場合、方法600は、一意フィーチャ222を使用して第2のメッセージをユーザデバイス110に送信することを含んでいてもよい。第2のメッセージは、一意フィーチャ222がユーザデバイス110に関連付けられていることを検証するために使用される新たな検証コード236を含んでいてもよい。
【0032】
一部の実装形態では、方法600は、ユーザデバイス110をアプリケーション512に登録した後、第2のメッセージ430をユーザデバイス110に送信することを含む。第2のメッセージ430は、ユーザデバイス110によって受信されるとき、ユーザデバイス110に、ユーザデバイス110のアプリケーション512への登録が成功したことをユーザデバイス110のユーザ10に対して通知させる。
【0033】
図7は、ユーザデバイス110のフィーチャ222を検証するための例示的な方法700のフローチャートである。フローチャートは、ユーザデバイス110のデータ処理ハードウェア910において、ユーザデバイス110に関連付けられた電話番号342を検証するための選択可能リンク231を含む第1のメッセージ230を受信することにより、動作702から開始する。選択可能リンク231は、電話番号342および国コード340に対応するメタデータ234と、国コード340および電話番号342の各々がユーザデバイス110に関連付けられていることを検証するために使用される検証コード236と、を含む。一部の例では、選択可能リンク231は、アプリケーション512を識別するアプリケーション識別子232をさらに含み、アプリケーション512は、ユーザデバイス110をアプリケーション512に登録するために、ユーザデバイス110に関連付けられた国コード340および電話番号342を必要とする。この場合、方法700は、選択指示を受信することに応じて、データ処理ハードウェア910によって、アプリケーション識別子232を使用して、ユーザデバイス上でアプリケーション512を起動することと、データ処理ハードウェア910によって、アプリケーション512に、ユーザデバイス110に関連付けられた国コード340および電話番号342を投入することと、をさらに含む。
【0034】
方法700は、動作704において、データ処理ハードウェア910によって、ユーザデバイス110上で実行するグラフィカルユーザインターフェース上に選択可能リンク231を表示することを含む。動作706において、方法700は、データ処理ハードウェア910において、グラフィカルユーザインターフェースに表示された選択可能リンク231の選択を示す選択指示を受信することを含む。選択指示を受信した後、方法700は、動作708において、データ処理ハードウェア910によって、ネットワーク122を介して、データ処理ハードウェア910と通信するサービス125に、検証コード236を送信することを含む。検証コード236は、サービス125が検証コード236を受信したことに応じて、サービス125に電話番号342がユーザデバイス110に関連付けられていることを検証させる。
【0035】
一部の実装形態では、選択可能リンク231の選択を示す選択指示を受信した後、方法700は、データ処理ハードウェア910によって、グラフィカルユーザインターフェース上に確認通知(例えば、ボタン)514を表示することと、データ処理ハードウェア910において、電話番号342がユーザデバイス110に関連付けられていることを検証するべく、確認ボタン514の選択を示す第2の選択指示を受信することと、を含む。方法700は、第2の選択指示を受信することに応じて、データ処理ハードウェア910によって、検証コード236のユーザ入力を必要とせずに、検証コード236をサービス125に自動的に送信することと、をさらに含む。
【0036】
任意選択により、方法700は、第1のメッセージ230を受信する前に、データ処理ハードウェア910によって、ユーザデバイス110上でのアプリケーション512の起動、またはリソースへのアクセスを要求する要求をサービス125に送信することを含む。要求は、ユーザデバイス110に関連付けられた電話番号342を含み、サービス125は、要求によって受信された電話番号342を使用して、第1のメッセージ230をユーザデバイス110に送信する。
【0037】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指す場合がある。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」を指す場合がある。アプリケーションの例には、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、ワード処理アプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションが含まれるが、これらに限定されない。
【0038】
非一時的メモリは、コンピューティングデバイスによって使用するために一時的または永続的にプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を格納するために使用される物理デバイスであり得る。非一時的メモリは、揮発性および/または不揮発性のアドレス可能な半導体メモリであり得る。不揮発性メモリの例には、フラッシュメモリおよび読み取り専用メモリ(ROM)/プログラム可能な読み取り専用メモリ(PROM)/消去可能なプログラム可能な読み取り専用メモリ(EPROM)/電子的に消去可能なプログラム可能な読み取り専用が含まれるが、これらに限定されない。メモリ(EEPROM)(例えば、通常、ブートプログラムなどのファームウェアに使用される)。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープが含まれるが、これらに限定されない。
【0039】
図8は、この文書で説明されているシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイス800の概略図である。コンピューティングデバイス800は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的としている。ここに示されているコンポーネント、それらの接続と関係、およびそれらの機能は、例示のみを目的としており、本書で説明および/または主張されている発明の実装を制限することを意味するものではない。
【0040】
コンピューティングデバイス800は、プロセッサ810、メモリ820、記憶デバイス830、メモリ820に接続する高速インターフェース/コントローラ840、高速拡張ポート850、および低速バス870、および記憶装置830に接続する低速インターフェース/コントローラ860を含む。コンポーネント810、820、830、840、850、および860のそれぞれは、様々なバスを使用して相互接続されており、共通のマザーボードに、または必要に応じて他の方法で取り付けることができる。プロセッサ810は、メモリ820または記憶装置830に格納された命令を含む、コンピューティングデバイス800内で実行するための命令を処理することができる。ハードウェア206、146は、高速インターフェース840に結合されたディスプレイ880などの外部入力/出力デバイス上のグラフィカルユーザインターフェース(GUI)のグラフィカル情報を表示する。他の実装形態では、複数のメモリおよび/またはメモリのタイプとともに、必要に応じて、複数のプロセッサおよび/または複数のバスを使用することができる。また、複数のコンピューティングデバイス800を接続することができ、各デバイスは、必要な操作の一部を提供する(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0041】
メモリ820は、コンピューティングデバイス800内に非一時的に情報を格納する。メモリ820は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであり得る。非一時的メモリ820は、コンピューティングデバイス800によって使用するために一時的または永続的にプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を格納するために使用される物理デバイスであり得る。不揮発性メモリの例には、フラッシュメモリおよび読み取り専用メモリ(ROM)/プログラム可能な読み取り専用メモリ(PROM)/消去可能なプログラム可能な読み取り専用メモリ(EPROM)/電子的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)が含まれるが、これらに限定されない(例えば、通常、ブートプログラムなどのファームウェアに使用される)。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープが含まれるが、これらに限定されない。
【0042】
記憶装置830は、コンピューティングデバイス800に大容量記憶装置を提供することができる。いくつかの実装形態では、記憶装置830は、コンピュータ可読媒体である。様々な異なる実施形態では、記憶装置830は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリまたは他の同様のソリッドステートメモリ装置、またはストレージエリアネットワークまたはその他の構成における装置を含む装置のアレイであり得る。追加の実装では、コンピュータプログラム製品は、情報キャリアに具体的に具体化される。コンピュータプログラム製品は、実行されると、上記のような1つまたは複数の方法を実行する命令を含む。情報キャリアは、メモリ820、記憶装置830、またはプロセッサ810上のメモリなどの、コンピュータまたは機械で読み取り可能な媒体である。
【0043】
高速コントローラ840は、コンピューティングデバイス800の帯域幅集約型の動作を管理し、低速コントローラ860は、帯域幅集約型のより低い動作を管理する。このような職務の割り当ては例示に過ぎない。いくつかの実装形態では、高速コントローラ840は、メモリ820、ディスプレイ880(例えば、グラフィックプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート850に結合される。いくつかの実装形態では、低速コントローラ860は、記憶装置830および低速拡張ポート890に結合されている。低速拡張ポート890は、様々な通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、イーサネットワイヤレス)を含んでいてもよく、例えばネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナなどの1つまたは複数の入力/出力デバイス、またはスイッチまたはルータなどのネットワークデバイスに結合することができる。
【0044】
コンピューティングデバイス800は、図に示されるように、いくつかの異なる形態で実装され得る。例えば、それは、標準サーバ800aとして、またはそのようなサーバ800aのグループ内での複数回のものとして、ラップトップコンピュータ800bとして、またはラックサーバシステム800cの一部として実装され得る。
【0045】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および/または光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実装は、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、データおよび命令を送信するために結合された、特別または汎用であり得る少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムでの実装を含むことができる。
【0046】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラム可能なプロセッサのマシン命令を含み、高レベルの手続き型および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ/機械語で実装され得る。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される、任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す場合があり、機械命令を機械可読信号として受信する機械可読媒体が含まれる。「機械可読信号」という用語は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0047】
本明細書に記載のプロセスおよび論理フローは、1つまたは複数のプログラム可能なプロセッサによって実行でき、1つまたは複数のコンピュータプログラムを実行して、入力データを操作し、出力を生成することによって機能を実行する。プロセスとロジックフローは、FPGA(フィールドプログラマブルゲートアレイ)やASIC(特定用途向け集積回路)などの特殊用途のロジック回路によっても実行できる。コンピュータプログラムの実行に適したプロセッサには、例として、汎用および特殊目的の両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの重要な要素は、命令を実行するためのプロセッサと、命令とデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶装置、例えば、磁気、光磁気ディスク、または光ディスクを含むか、またはデータを受信するか、データを転送するか、またはその両方に動作可能に結合される。ただし、コンピュータにそのようなデバイスが必要としない。コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ可読媒体には、不揮発性メモリ、メディア、およびメモリデバイスの全ての形態が含まれ、例として、半導体メモリデバイス(例えば、EPROM、EEPROM、およびフラッシュメモリデバイス)、磁気ディスク(例えば、内蔵ハードディスクまたはリムーバブルディスク)光磁気ディスク、CDROMおよびDVD-ROMディスクが含まれる。プロセッサとメモリは、特別な目的の論理回路によって補完または組み込むことができる。
【0048】
ユーザとの対話を提供するために、本開示の1つまたは複数の態様は、ユーザに情報を表示するためのCRT(ブラウン管)、LCD(液晶ディスプレイ)モニター、またはタッチスクリーン等のディスプレイデバイス、任意選択でユーザがコンピュータに入力を提供可能とするキーボードとポインティングデバイス(マウスやトラックボールなど)を有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形態の感覚的フィードバックであり得る。また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信できる。さらに、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受信することにより、ユーザと対話できる。例えば、Webブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のWebブラウザにWebページを送信する。
【0049】
図9は、この文書に記載されたシステムおよび方法を実施するために使用され得る、例示的なユーザデバイス900(例えば、図1のユーザデバイス110)のデータ処理ハードウェアの概略図である。示されている例で、ユーザデバイス900は、処理デバイス910、記憶デバイス920、ネットワークインターフェース930、およびユーザインターフェース940を含む。
【0050】
処理デバイス910(例えば、データ処理ハードウェア)は、コンピュータ可読命令を格納するメモリ(例えば、RAMおよび/またはROM)と、コンピュータ可読命令を実行する1つまたは複数のプロセッサとを含む。処理デバイス910が2つ以上のプロセッサを含む実装では、プロセッサは、分散された方法または個別の方法で実行することができる。処理デバイス910は、検索アプリケーション912、ウェブブラウザ918、オペレーティングシステム916、および1つまたは複数のネイティブアプリケーション914を実行することができ、これらはすべて、コンピュータ可読命令として具体化することができる。記憶デバイス920は、1つまたは複数のコンピュータ可読媒体(例えば、ハードディスクドライブおよび/またはフラッシュメモリ)を含む。記憶デバイス920は、検索アプリケーション912、ウェブブラウザ918、オペレーティングシステム916、および1つまたは複数のネイティブアプリケーション914を構成するコンピュータ可読命令を格納することができる。ネットワークインターフェース930は、ネットワークで通信するように構成された1つまたは複数のデバイスを含む。ネットワークインターフェース930は、有線または無線通信を実行するための1つまたは複数のトランシーバを含むことができる。ネットワークインターフェース930の例には、IEEE 802.11無線規格を使用して通信を実行するように構成されたトランシーバ、イーサネットポート、無線送信機、およびユニバーサルシリアルバス(USB)ポートが含まれ得るが、これらに限定されない。ユーザインターフェース940は、ユーザから入力を受信し、および/またはユーザに出力を提供する1つまたは複数のデバイスを含む。ユーザインターフェース940は、タッチスクリーン、ディスプレイ、QWERTYキーボード、テンキー、タッチパッド、マイクロフォン、および/またはスピーカーを含むことができるが、これらに限定されない。
【0051】
いくつかの実装形態が説明されている。しかしながら、本開示の趣旨および範囲から逸脱することなく、様々な変更を行うことができることが理解されるであろう。したがって、他の実装形態は、以下の特許請求の範囲内にある。
図1
図2
図3
図4
図5
図6
図7
図8
図9