IP Library Granted Patent US 10,721,242
Granted Patent B1
US 10,721,242 · App. 15/994,954 · Granted Jul 21, 2020

Verifying a correlation between a name and a contact point in a messaging system

Inventors: Matthew Knight Jones (Redwood City, CA); Yue Zhang (Menlo Park, CA)
Assignee: Facebook, Inc.
H04L63/126G06N20/00G06Q10/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,721,242
App. No.
15/994,954
Granted
Jul 21, 2020
Kind
B1
Abstract

A server receives an instruction to verify that a contact point (e.g., a phone number) is associated with a name. A set of users that have the contact point stored in a contact list on the server is identified and client devices associated with the users in the set are sent a name verification query. The name verification query includes a representation of the name and the contact point. The server receives a set of one or more matching scores from each of at least a subset of the client devices. The set of matching scores received from a given client device indicates a degree to which a name stored in association with the contact point in the client device's local address book matches the representation of the name. A determination is made as to whether the contact point is associated with the name based on the received matching scores.

Claims (96)

1. A method comprising:

receiving, at a server, an instruction to verify that users of an online system associate a contact point with a name;

identifying a set of users of the online system that have the contact point stored in a contact list on the server;

sending a name verification query to client devices associated with the users in the set, the name verification query including a representation of the name and the contact point, wherein the representation of the name is a set of tokens generated from the name;

receiving, from each of at least a subset of the client devices, a set of one or more matching scores, the set of matching scores received from each client device comprising one or more scores indicating similarity between each token in the set of tokens generated from the name and corresponding tokens generated from a name stored in association with the contact point in that client device's local address book;

determining whether users of the online system associate the contact point with the name based on the received matching scores; and

verifying, in the online system, that the contact point is associated with the name responsive to determining users of the online system associating the contact point with the name.

2. The method of claim 1 , further comprising:

receiving, from each client device in the subset of client devices, at least a portion of the client device's local address book, the portion of the client device's local address book including the contact point; and

adding, for each client device in the subset, the portion of the client device's local address book to the contact list on the server in association with an identifier of the user associated with the client device,

wherein identifying the set of users comprises:

searching the contact list on the server for the contact point; and

including a given user in the set of users responsive to the contact point being stored in the contact list in association with the identifier of the given user.

3. The method of claim 1 , wherein determining whether users of the online system associate the contact point with the name comprises:

counting a number of client devices for which the received set of matching scores indicates an exact match between the set of tokens generated from the name and the corresponding tokens generated from the name stored in association with the contact point in the client device's local address book; and

determining that the contact point is associated with the name responsive to the number of client devices exceeding an exact match threshold.

4. The method of claim 1 , wherein determining whether users of the online system associate the contact point with the name comprises:

for each of the client devices from which a set of matching scores was received, calculating a total distance between the set of tokens generated from the name and the corresponding tokens generated from the name stored in association with the contact point in the client device's local address book;

calculating an average of the total distances; and

determining that the contact point is associated with the name responsive to the average of the total distances being below an average score threshold.

5. The method of claim 1 , wherein a given set of the one or more matching scores includes a matching score corresponding to each token in the set of tokens generated from the name, and wherein determining whether users of the online system associate the contact point with the name comprises:

determining a weighting for each matching score in the given set to generate a set of weightings, each weighting based on a length of a token in the set of tokens generated from the name to which the weighting corresponds;

normalizing the weightings such that a sum of the weightings equals a predetermined value;

applying each weighting to the corresponding matching score in the given set to generate a set of weighted matching scores; and

determining whether the contact point is associated with the name based on the set of weighted matching scores.

6. The method of claim 1 , wherein sending the name verification query to client devices associated with the users in the set comprises:

adding the name verification query to a queue associated with a user in the set of users;

receiving, at the server, a connection request from a client device, the connection request identifying that the client device is associated with the user; and

sending the name verification query to the client device associated with the user responsive to the connection request.

7. The method of claim 1 , further comprising:

verifying that an account associated with the contact point corresponds to a genuine business responsive to verifying that the contact point is associated with the name;

receiving, from a requesting client device, a request for business data associated with the account; and

sending, to the the requesting client device in response to the request, the business data and an indiction that the contact point corresponds to the genuine business, wherein the client displays the business data in conjunction with a visual indicator that the account is verified.

8. A non-transitory computer-readable medium storing computer program instructions executable by a processor to perform operations comprising:

receiving, at a server, an instruction to verify that users of an online system associate a contact point with a name;

identifying a set of users of the online system that have the contact point stored in a contact list on the server;

sending a name verification query to client devices associated with the users in the set, the name verification query including a representation of the name and the contact point, wherein the representation of the name is a set of tokens generated from the name;

receiving, from each of at least a subset of the client devices, a set of one or more matching scores, the set of matching scores received from each client device comprising one or more scores indicating similarity between each token in the set of tokens generated from the name and corresponding tokens generated from a name stored in association with the contact point in that client device's local address book;

determining whether users of the online system associate the contact point with the name based on the received matching scores; and

verifying, in the online system, that the contact point is associated with the name responsive to determining users of the online system associating the contact point with the name.

9. The non-transitory computer-readable medium of claim 8 , wherein the operations further comprise:

receiving, from each client device in the subset of client devices, at least a portion of the client device's local address book, the portion of the client device's local address book including the contact point; and

adding, for each client device in the subset, the portion of the client device's local address book to the contact list on the server in association with an identifier of the user associated with the client device,

wherein identifying the set of users comprises:

searching the contact list on the server for the contact point; and

including a given user in the set of users responsive to the contact point being stored in the contact list in association with the identifier of the given user.

10. The non-transitory computer-readable medium of claim 8 , wherein determining whether users of the online system associate the contact point with the name comprises:

counting a number of client devices for which the received set of matching scores indicates an exact match between the set of tokens generated from the name and the corresponding tokens generated from the name stored in association with the contact point in the client device's local address book; and

determining that the contact point with the name responsive to the number of client devices exceeding an exact match threshold.

11. The non-transitory computer-readable medium of claim 8 , wherein determining whether users of the online system associate the contact point with the name comprises:

for each of the client devices from which a set of matching scores was received, calculating a total distance between the set of tokens generated from the name and the corresponding tokens generated from the name stored in association with the contact point in the client device's local address book;

calculating an average of the total distances; and

determining that the contact point is associated with the name responsive to the average of the total distances being below an average score threshold.

12. The non-transitory computer-readable medium of claim 8 , wherein a given set of the one or more matching scores includes a matching score corresponding to each token in the set of tokens generated from the name, and wherein determining whether users of the online system associate the contact point with the name comprises:

determining a weighting for each matching score in the given set to generate a set of weightings, each weighting based on a length of a token in the set of tokens generated from the name to which the weighting corresponds;

normalizing the weightings such that a sum of the weightings equals a predetermined value;

applying each weighting to the corresponding matching score in the given set to generate a set of weighted matching scores; and

determining whether the contact point is associated with the name based on the set of weighted matching scores.

13. The non-transitory computer-readable medium of claim 8 , wherein sending the name verification query to client devices associated with the users in the set comprises:

adding the name verification query to a queue associated with a user in the set of users;

receiving, at the server, a connection request from a client device, the connection request identifying that the client device is associated with the user; and

sending the name verification query to the client device associated with the user responsive to the connection request.

14. The non-transitory computer-readable medium of claim 8 , wherein the operations further comprise:

verifying that an account associated with the contact point corresponds to a genuine business responsive to verifying that the contact point is associated with the name;

receiving, from a requesting client device, a request for business data associated with the account;

sending, to the the requesting client device in response to the request, the business data and an indiction that the contact point corresponds to the genuine business, wherein the client displays the business data in conjunction with a visual indicator that the account is verified.

15. A computer system comprising:

one or more processors; and

one or more computer readable media storing computer program instructions that, when executed, cause the one or more processors to perform operations including:

receiving, at a server, an instruction to verify that users of an online system associate a contact point with a name;

identifying a set of users of the online system that have the contact point stored in a contact list on the server;

sending a name verification query to client devices associated with the users in the set, the name verification query including a representation of the name and the contact point, wherein the representation of the name is a set of tokens generated from the name;

receiving, from each of at least a subset of the client devices, a set of one or more matching scores, the set of matching scores received from each client device comprising one or more scores indicating similarity between each token in the set of tokens generated from the name and corresponding tokens generated from a name stored in association with the contact point in that client device's local address book;

determining whether users of the online system associate the contact point with the name based on the received matching scores; and

verifying, in the online system, that the contact point is associated with the name responsive to determining users of the online system associating the contact point with the name.

16. The computer system of claim 15 , wherein the operations further comprise:

receiving, from each client device in the subset of client devices, at least a portion of the client device's local address book, the portion of the client device's local address book including the contact point; and

adding, for each client device in the subset, the portion of the client device's local address book to the contact list on the server in association with an identifier of the user associated with the client device,

wherein identifying the set of users comprises:

searching the contact list on the server for the contact point; and

including a given user in the set of users responsive to the contact point being stored in the contact list in association with the identifier of the given user.

17. The computer system of claim 15 , wherein determining whether users of the online system associate the contact point with the name comprises:

counting a number of client devices for which the received set of matching scores indicates an exact match between the set of tokens generated from the name and the corresponding tokens generated from the name stored in association with the contact point in the client device's local address book; and

determining that the contact point is associated with the name responsive to the number of client devices exceeding an exact match threshold.

18. The computer system of claim 15 , wherein determining whether users of the online system associate the contact point with the name comprises:

for each of the client devices from which a set of matching scores was received, calculating a total distance between the set of tokens generated from the name and the corresponding tokens generated from the name stored in association with the contact point in the client device's local address book;

calculating an average of the total distances; and

determining that the contact point is associated with the name responsive to the average of the total distances being below an average score threshold.

19. The computer system of claim 15 , wherein sending the name verification query to client devices associated with the users in the set comprises:

adding the name verification query to a queue associated with a user in the set of users;

receiving, at the server, a connection request from a client device, the connection request identifying that the client device is associated with the user; and

sending the name verification query to the client device associated with the user responsive to the connection request.

20. The computer system of claim 15 , wherein the operations further comprise:

verifying that an account associated with the contact point corresponds to a genuine business responsive to verifying that the contact point is associated with the name;

receiving, from a requesting client device, a request for business data associated with the account;

sending, to the the requesting client device in response to the request, the business data and an indiction that the contact point corresponds to the genuine business, wherein the client displays the business data in conjunction with a visual indicator that the account is verified.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2018
From: JONES, MATTHEW KNIGHT; ZHANG, YUE
To: FACEBOOK, INC.
Reel/Frame 046486/0006 →
Continuity (1)
Continuation 15964286 · Apr 27, 2018
Cited By (4)
US 12,206,786 US 12,293,351 US 12,393,623 US 12,664,550