fullcontacter 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +53 -0
- data/.rspec +3 -0
- data/Gemfile +3 -0
- data/LICENSE.md +20 -0
- data/README.md +36 -0
- data/Rakefile +25 -0
- data/VERSION +1 -0
- data/bugs.txt +2 -0
- data/fullcontact.gemspec +34 -0
- data/lib/faraday/request/gateway.rb +18 -0
- data/lib/faraday/response/fullcontact_errors.rb +33 -0
- data/lib/faraday/response/raise_http_4xx.rb +45 -0
- data/lib/faraday/response/raise_http_5xx.rb +24 -0
- data/lib/fullcontact.rb +27 -0
- data/lib/fullcontact/api.rb +21 -0
- data/lib/fullcontact/client.rb +32 -0
- data/lib/fullcontact/client/batch_process.rb +35 -0
- data/lib/fullcontact/client/contact.rb +119 -0
- data/lib/fullcontact/client/contact_list.rb +84 -0
- data/lib/fullcontact/client/icon.rb +35 -0
- data/lib/fullcontact/client/name.rb +167 -0
- data/lib/fullcontact/client/person.rb +94 -0
- data/lib/fullcontact/client/provisioning.rb +28 -0
- data/lib/fullcontact/client/snapshot.rb +31 -0
- data/lib/fullcontact/client/subscription.rb +45 -0
- data/lib/fullcontact/client/user.rb +28 -0
- data/lib/fullcontact/configuration.rb +95 -0
- data/lib/fullcontact/connection.rb +36 -0
- data/lib/fullcontact/error.rb +35 -0
- data/lib/fullcontact/request.rb +43 -0
- data/lib/fullcontact/version.rb +3 -0
- data/spec/faraday/response_spec.rb +56 -0
- data/spec/fixtures/clear_contact_list.json +3 -0
- data/spec/fixtures/contact_history.json +16 -0
- data/spec/fixtures/create_contact_list.json +4 -0
- data/spec/fixtures/create_snapshot.json +7 -0
- data/spec/fixtures/create_subscription.json +4 -0
- data/spec/fixtures/deduce_by_email.json +13 -0
- data/spec/fixtures/deduce_by_username.json +13 -0
- data/spec/fixtures/delete_contact.json +4 -0
- data/spec/fixtures/delete_contact_list.json +3 -0
- data/spec/fixtures/delete_subscription.json +3 -0
- data/spec/fixtures/get_contact.json +20 -0
- data/spec/fixtures/get_contact_lists.json +11 -0
- data/spec/fixtures/get_contacts_in_a_list.json +41 -0
- data/spec/fixtures/get_enriched_contact.json +261 -0
- data/spec/fixtures/get_updates.json +252 -0
- data/spec/fixtures/has_enriched_updates.json +4 -0
- data/spec/fixtures/list_snapshots.json +7 -0
- data/spec/fixtures/list_subscriptions.json +10 -0
- data/spec/fixtures/normalize.json +27 -0
- data/spec/fixtures/parse.json +10 -0
- data/spec/fixtures/person.json +47 -0
- data/spec/fixtures/queue_contact_list_for_enrichment.json +3 -0
- data/spec/fixtures/save_enriched_contact.json +261 -0
- data/spec/fixtures/similarity.json +45 -0
- data/spec/fixtures/stats_by_family_name.json +12 -0
- data/spec/fixtures/stats_by_given_and_family_name.json +62 -0
- data/spec/fixtures/stats_by_given_name.json +57 -0
- data/spec/fixtures/stats_by_name.json +64 -0
- data/spec/fixtures/update_contact.json +9 -0
- data/spec/fullcontact/api_spec.rb +68 -0
- data/spec/fullcontact/client/contact_list_spec.rb +89 -0
- data/spec/fullcontact/client/contact_spec.rb +108 -0
- data/spec/fullcontact/client/icon_spec.rb +24 -0
- data/spec/fullcontact/client/name_spec.rb +121 -0
- data/spec/fullcontact/client/person_spec.rb +77 -0
- data/spec/fullcontact/client/snapshot_spec.rb +35 -0
- data/spec/fullcontact/client/subscription_spec.rb +47 -0
- data/spec/fullcontact/client_spec.rb +10 -0
- data/spec/fullcontact_spec.rb +114 -0
- data/spec/helper.rb +39 -0
- metadata +384 -0
@@ -0,0 +1,119 @@
|
|
1
|
+
module FullContact
|
2
|
+
class Client
|
3
|
+
module Contact
|
4
|
+
# Public: Creates/Modifies a contact
|
5
|
+
#
|
6
|
+
# list_id - id of the contact list to which this contact is to be added
|
7
|
+
# options - Hash containing contact data and other options
|
8
|
+
# :contact_data - Hash representing the contact information in POCO format
|
9
|
+
# :generateIds(0|1) - Whether or not ids need to be generated by the system (optional) (default: 0)
|
10
|
+
# :queue(true|false) - Check for updates on creation if true (optional) (default: false)
|
11
|
+
#
|
12
|
+
# Example
|
13
|
+
#
|
14
|
+
# contact = FullContact.update_contact(list_id, { :contact_data => data , :generateIds => 1 })
|
15
|
+
# # 'contact' contains the newly created contact
|
16
|
+
def update_contact(list_id, options)
|
17
|
+
options[:content_type] = 'application/json'
|
18
|
+
options[:request_body] = options[:contact_data]
|
19
|
+
options.delete(:contact_data)
|
20
|
+
contacts = post("contactLists/#{list_id}", options)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Public: Retrieves a contact
|
24
|
+
#
|
25
|
+
# list_id - id of the contact list from which this contact is to be retrieved
|
26
|
+
# contact_id - id of the contact which is to be retrieved
|
27
|
+
# options - Hash containing additonal arguments (optional) (default: {})
|
28
|
+
# :eTag - represents a unique version of the contact. Retrieves latest version if not specified (optional)
|
29
|
+
#
|
30
|
+
# Example
|
31
|
+
#
|
32
|
+
# contact = FullContact.get_contact(list_id, contact_id)
|
33
|
+
# # contact now contains details about this contact
|
34
|
+
def get_contact(list_id, contact_id, options = {})
|
35
|
+
get("contactLists/#{list_id}/#{contact_id}", options)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Public: Delete contact
|
39
|
+
#
|
40
|
+
# list_id - id of the contact list from which this contact is to be deleted
|
41
|
+
# contact_id - id of the contact which is to be deleted
|
42
|
+
#
|
43
|
+
# Example
|
44
|
+
#
|
45
|
+
# FullContact.delete_contact(list_id, contact_id)
|
46
|
+
def delete_contact(list_id, contact_id)
|
47
|
+
delete("contactLists/#{list_id}/#{contact_id}")
|
48
|
+
end
|
49
|
+
|
50
|
+
# Public: Checks if a contact has new enrichment updates available
|
51
|
+
#
|
52
|
+
# list_id - id of the contact list to which this contact belongs
|
53
|
+
# contact_id - id of the contact which needs to be checked for enrichment updates
|
54
|
+
# options - Hash containing additonal arguments (optional) (default: {})
|
55
|
+
# :eTag - represents a unique version of the contact. Retrieves latest version if not specified (optional)
|
56
|
+
#
|
57
|
+
# Example
|
58
|
+
#
|
59
|
+
# response = FullContact.has_enriched_updates?(list_id, contact_id)
|
60
|
+
# response.hasUpdates is now either true/false
|
61
|
+
def has_enriched_updates?(list_id, contact_id, options = {})
|
62
|
+
get("contactLists/#{list_id}/#{contact_id}/hasUpdates", options)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Public: Gets latest updates for this contact
|
66
|
+
#
|
67
|
+
# list_id - id of the contact list to which this contact belongs
|
68
|
+
# contact_id - id of the contact whose updates are needed
|
69
|
+
#
|
70
|
+
# Example
|
71
|
+
#
|
72
|
+
# response = FullContact.get_updates(list_id, contact_id)
|
73
|
+
# response.updates now contains the hash denoting the updates for this user
|
74
|
+
def get_updates(list_id, contact_id)
|
75
|
+
get("contactLists/#{list_id}/#{contact_id}/updates")
|
76
|
+
end
|
77
|
+
|
78
|
+
# Public: Gets fully enriched version of the contact
|
79
|
+
#
|
80
|
+
# list_id - id of the contact list to which this contact belongs
|
81
|
+
# contact_id - id of the contact whose enriched version is needed
|
82
|
+
#
|
83
|
+
# Example
|
84
|
+
#
|
85
|
+
# response = FullContact.get_enriched_contact(list_id, contact_id)
|
86
|
+
# response.data now contains the hash denoting the enriched information for this contact
|
87
|
+
def get_enriched_contact(list_id, contact_id)
|
88
|
+
get("contactLists/#{list_id}/#{contact_id}/enriched")
|
89
|
+
end
|
90
|
+
|
91
|
+
# Public: Saves fully enriched version of the contact
|
92
|
+
#
|
93
|
+
# list_id - id of the contact list to which this contact belongs
|
94
|
+
# contact_id - id of the contact whose enriched version is to be saved
|
95
|
+
#
|
96
|
+
# Example
|
97
|
+
#
|
98
|
+
# response = FullContact.save_enriched_contact(list_id, contact_id)
|
99
|
+
def save_enriched_contact(list_id, contact_id)
|
100
|
+
post("contactLists/#{list_id}/#{contact_id}/enriched")
|
101
|
+
end
|
102
|
+
|
103
|
+
# Public: Retrieves a list of eTags representing the history of a contact
|
104
|
+
#
|
105
|
+
# list_id - id of the contact list to which this contact belongs
|
106
|
+
# contact_id - id of the contact whose history is needed
|
107
|
+
# options - Hash containing additional arguments (optional) (default: {})
|
108
|
+
# :actionType("Added"|"Updated"|"Deleted"|"Enriched") - filters list based on the given action type
|
109
|
+
#
|
110
|
+
# Example
|
111
|
+
#
|
112
|
+
# response = FullContact.history(list_id, contact_id, "Updated")
|
113
|
+
# response.history now contains a list of 'Update' actions, with corresponding eTags for this contact
|
114
|
+
def contact_history(list_id, contact_id, options = {})
|
115
|
+
get("contactLists/#{list_id}/#{contact_id}/history", options)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module FullContact
|
2
|
+
class Client
|
3
|
+
module ContactList
|
4
|
+
# Public: Creates a contact list for the authenticating user
|
5
|
+
#
|
6
|
+
# options - a Hash containing the alias(optional) for the new list
|
7
|
+
#
|
8
|
+
# Example
|
9
|
+
#
|
10
|
+
# list = FullContact.create_contact_list(:alias => 'dummy')
|
11
|
+
# # 'list' contains the newly created contact list
|
12
|
+
def create_contact_list(options = {})
|
13
|
+
post('contactLists', options)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Public: Deletes a contact list of the authenticating user
|
17
|
+
#
|
18
|
+
# list_id - id of the list object to be deleted
|
19
|
+
#
|
20
|
+
# Example
|
21
|
+
#
|
22
|
+
# list = FullContact.create_contact_list(:alias => 'dummy')
|
23
|
+
# # Delete this list now...
|
24
|
+
# FullContact.delete_contact_list(list.list_id)
|
25
|
+
def delete_contact_list(list_id)
|
26
|
+
delete("contactLists/#{list_id}")
|
27
|
+
end
|
28
|
+
|
29
|
+
# Public: Retrieves all the contact lists for the authenticating user
|
30
|
+
#
|
31
|
+
# Example
|
32
|
+
#
|
33
|
+
# lists = FullContact.get_contact_lists
|
34
|
+
# # Iterate over this list now..
|
35
|
+
# lists.each { |list| puts list.inspect }
|
36
|
+
def get_contact_lists
|
37
|
+
contact_lists = get('contactLists').lists
|
38
|
+
contact_lists.map do |list|
|
39
|
+
list.list_id = list.id
|
40
|
+
end
|
41
|
+
contact_lists
|
42
|
+
end
|
43
|
+
|
44
|
+
# Public: Gets the contacts within a contact list
|
45
|
+
#
|
46
|
+
# list_id - Id of the list from which contacts need to be retrieved
|
47
|
+
#
|
48
|
+
# Example
|
49
|
+
#
|
50
|
+
# lists = FullContact.get_contact_lists
|
51
|
+
# # Get contacts in first list now
|
52
|
+
# FullContacts.get_contacts_in_a_list(lists[0].list_id)
|
53
|
+
def get_contacts_in_a_list(list_id, options={})
|
54
|
+
get("contactLists/#{list_id}", options)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Public: Queues a contact list for enrichment to search for new contact information
|
58
|
+
#
|
59
|
+
# list_id - Id of the list which needs to be queued for enrichment
|
60
|
+
#
|
61
|
+
# Example
|
62
|
+
#
|
63
|
+
# lists = FullContact.get_contact_lists
|
64
|
+
# # Enrich the contacts in first list
|
65
|
+
# FullContacts.queue_contact_list_for_enrichment(lists[0].list_id)
|
66
|
+
def queue_contact_list_for_enrichment(list_id)
|
67
|
+
post("contactLists/#{list_id}/queue")
|
68
|
+
end
|
69
|
+
|
70
|
+
# Public: Removes all contacts in a contact list
|
71
|
+
#
|
72
|
+
# list_id - Id of the list from which contacts need to be cleared
|
73
|
+
#
|
74
|
+
# Example
|
75
|
+
#
|
76
|
+
# lists = FullContact.get_contact_lists
|
77
|
+
# # Clear contacts in first list
|
78
|
+
# FullContacts.clear_contact_list(lists[0].list_id)
|
79
|
+
def clear_contact_list(list_id)
|
80
|
+
post("contactLists/#{list_id}/clear")
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module FullContact
|
2
|
+
class Client
|
3
|
+
# Public: Methods for interacting with icon endpoint
|
4
|
+
module Icon
|
5
|
+
# Public: Provies url to different social media icons. All icons are
|
6
|
+
# 24 bit PNG and come in 4 different sizes. Allows you to quickly
|
7
|
+
# incorporate social network icons into FullContact powered your apps.
|
8
|
+
# see http://www.fullcontact.com/docs/?category=icon for list of
|
9
|
+
# available icons
|
10
|
+
#
|
11
|
+
# type_id - String name of the icon you want. (default: 'facebook')
|
12
|
+
# size - The size parameter allows you to specify the size of icon
|
13
|
+
# that you want. Icons are available in 16, 24, 32 and 64
|
14
|
+
# pixels square. (default: '32')
|
15
|
+
# style - Allows to pick from available styles of icon
|
16
|
+
# (default: 'default')
|
17
|
+
#
|
18
|
+
# Example
|
19
|
+
#
|
20
|
+
# angel_list_icon = FullContact.get_social_icon_url('angellist','16','default')
|
21
|
+
# # 'angel_list_icon' contains url of the icon
|
22
|
+
#
|
23
|
+
# Returns url to the specified social media icon
|
24
|
+
def get_social_icon_url(type_id = 'facebook', size = '32', style = 'default')
|
25
|
+
self.format = ''
|
26
|
+
url = '/' + type_id + '/' + size + '/' + style
|
27
|
+
response = get('icon' + url, {}, true)
|
28
|
+
response.env[:response_headers]['location']
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
module FullContact
|
2
|
+
class Client
|
3
|
+
# Public: Various methods related to name of the person
|
4
|
+
module Name
|
5
|
+
# Public: Takes quasi structured name data provided as a string and
|
6
|
+
# outputs the data in a structured manner.
|
7
|
+
#
|
8
|
+
# query - Query parameter allows you to pass a quasi-structured full
|
9
|
+
# name String which can include standard prefix, first name,
|
10
|
+
# nickname, middle name, last name and suffix.
|
11
|
+
#
|
12
|
+
# Example
|
13
|
+
#
|
14
|
+
# normalized = FullContact.normalize('John Smith')
|
15
|
+
# # 'normalized' contains normalized contact
|
16
|
+
#
|
17
|
+
# Returns normalized contact
|
18
|
+
def normalize(query)
|
19
|
+
options = {:q => query}
|
20
|
+
get('name/normalizer', options)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Public: Attempts to deduce a structured name from email address. It
|
24
|
+
# also returns a likelihood based on US population data. This method is
|
25
|
+
# ideal for business email addresses due to the use of standard
|
26
|
+
# convention in corporate email address formats.
|
27
|
+
#
|
28
|
+
# email - email parameter allows to pass an email address as String
|
29
|
+
#
|
30
|
+
# Example
|
31
|
+
#
|
32
|
+
# deduced = FullContact.deduce_by_email('johndsmith79@business.com')
|
33
|
+
# # 'deduced' contains deduced contact
|
34
|
+
#
|
35
|
+
# Returns deduced contact
|
36
|
+
def deduce_by_email(email)
|
37
|
+
options = {:email => email}
|
38
|
+
get('name/deducer', options)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Public: Attempts to deduce a structured name from username. It
|
42
|
+
# also returns a likelihood based on US population data.
|
43
|
+
#
|
44
|
+
# email - username parameter allows to pass username as String
|
45
|
+
#
|
46
|
+
# Example
|
47
|
+
#
|
48
|
+
# deduced = FullContact.deduce_by_username('johndsmith79')
|
49
|
+
# # 'deduced' contains deduced contact
|
50
|
+
#
|
51
|
+
# Returns deduced contact
|
52
|
+
def deduce_by_username(username)
|
53
|
+
options = {:username => username}
|
54
|
+
get('name/deducer', options)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Public: The Name Similarity endpoint compares two names, given as the
|
58
|
+
# parameters q1 and q2, and returns a score indicating how similar they
|
59
|
+
# are. As the performance of different similarity algorithms can vary
|
60
|
+
# over different data sets, the endpoint provides 3 separate choices.
|
61
|
+
#
|
62
|
+
# name_one - String first name to compare
|
63
|
+
# name_two - String second name to compare
|
64
|
+
#
|
65
|
+
# Example
|
66
|
+
#
|
67
|
+
# similarity = FullContact.similarity('john','johnathan')
|
68
|
+
# # 'normalized' contains similarity of contact
|
69
|
+
#
|
70
|
+
# Returns similarity in the contact
|
71
|
+
def similarity(name_one, name_two)
|
72
|
+
options = {
|
73
|
+
:q1 => name_one,
|
74
|
+
:q2 => name_two
|
75
|
+
}
|
76
|
+
get('name/similarity', options)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Public: The method can be used when you only know a single name and
|
80
|
+
# you are uncertain whether it is the given name or family name.
|
81
|
+
#
|
82
|
+
# name - String first name or last name of person about which you are
|
83
|
+
# uncertain.
|
84
|
+
#
|
85
|
+
# Example
|
86
|
+
#
|
87
|
+
# stats = FullContact.stats_by_name('John')
|
88
|
+
# # 'stats' contains stats about the contact
|
89
|
+
#
|
90
|
+
# Returns stats about the contact
|
91
|
+
def stats_by_name(name)
|
92
|
+
options = {:name => name}
|
93
|
+
get('name/stats', options)
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
# Public: The method can be used when you know that the name is a given name (first name).
|
98
|
+
#
|
99
|
+
# given_name - String parameter allows to pass given_name of the person
|
100
|
+
#
|
101
|
+
# Example
|
102
|
+
#
|
103
|
+
# stats = FullContact.stats_by_given_name('john')
|
104
|
+
# # 'stats' contains stats about the contact
|
105
|
+
#
|
106
|
+
# Returns stats about the contact
|
107
|
+
def stats_by_given_name(given_name)
|
108
|
+
options = {:givenName => given_name}
|
109
|
+
get('name/stats', options)
|
110
|
+
end
|
111
|
+
|
112
|
+
# Public: The method can be used when you know that the name is a family
|
113
|
+
# name (last name).
|
114
|
+
#
|
115
|
+
# family_name - String family name of the person
|
116
|
+
#
|
117
|
+
# Example
|
118
|
+
#
|
119
|
+
# stats = FullContact.stats_by_family_name('smith')
|
120
|
+
# # 'stats' contains stats about the contact
|
121
|
+
#
|
122
|
+
# Returns stats about the contact
|
123
|
+
def stats_by_family_name(family_name)
|
124
|
+
options = {:familyName => family_name}
|
125
|
+
get('name/stats', options)
|
126
|
+
end
|
127
|
+
|
128
|
+
# Public: The method can be use when you know both first name and last
|
129
|
+
# name of the person
|
130
|
+
#
|
131
|
+
# given_name - String first name of the person
|
132
|
+
# family_name - String last name of the person
|
133
|
+
#
|
134
|
+
# Example
|
135
|
+
#
|
136
|
+
# stats = FullContact.stats_by_given_and_family_name('john', 'smith')
|
137
|
+
# # 'stats' contains stats about the contact
|
138
|
+
#
|
139
|
+
# Returns stats about the contact
|
140
|
+
def stats_by_given_and_family_name(given_name, family_name)
|
141
|
+
options = {
|
142
|
+
:givenName => given_name,
|
143
|
+
:familyName => family_name
|
144
|
+
}
|
145
|
+
get('name/stats', options)
|
146
|
+
end
|
147
|
+
|
148
|
+
# Public: The Name Parser method can be used when you have two names but
|
149
|
+
# don't know which one is the first name and which is the last name.
|
150
|
+
#
|
151
|
+
# name - String name parameter allows you to pass an ambiguious name and
|
152
|
+
# determine what the given name and family name is.
|
153
|
+
#
|
154
|
+
# Example
|
155
|
+
#
|
156
|
+
# parsed = FullContact.parse('Smith Jon')
|
157
|
+
# # 'parsed' contains parsed contact
|
158
|
+
#
|
159
|
+
# Returns parsed contact
|
160
|
+
def parse(name)
|
161
|
+
options = {:q => name}
|
162
|
+
get('name/parser', options)
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
module FullContact
|
2
|
+
class Client
|
3
|
+
module Person
|
4
|
+
# Public: Uses the person method to request more information about a specific person by email
|
5
|
+
#
|
6
|
+
# email - The email address of the person being looked up.
|
7
|
+
# options - Hash containing additional arguments (optional) (default: {})
|
8
|
+
# :timeOutSeconds - Wait for specified time, before returning a 202 (optional)
|
9
|
+
# :queue - Enqueue this email for indexing (optional)
|
10
|
+
# :callback - If specified, the response will be wrapped as JSONP in a function call. (optional)
|
11
|
+
# :webhookUrl - Delivers lookup response at specified url (required for webhook calls)
|
12
|
+
# :webhookId - Id for tracking the webhook
|
13
|
+
#
|
14
|
+
# Example
|
15
|
+
#
|
16
|
+
# response = FullContact.lookup_by_email('prafulla.kiran@gmail.com')
|
17
|
+
def lookup_by_email(email, options = {})
|
18
|
+
options[:email] = email
|
19
|
+
get('person', options)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Public: Uses the person method to request more information about a specific person by phone
|
23
|
+
#
|
24
|
+
# phone - The phone number of the person being looked up.
|
25
|
+
# options - Hash containing additional arguments (optional) (default: {})
|
26
|
+
# :timeOutSeconds - Wait for specified time, before returning a 202 (optional)
|
27
|
+
# :queue - Enqueue this email for indexing (optional)
|
28
|
+
# :callback - If specified, the response will be wrapped as JSONP in a function call. (optional)
|
29
|
+
# :webhookUrl - Delivers lookup response at specified url (required for webhook calls)
|
30
|
+
# :webhookId - Id for tracking the webhook
|
31
|
+
#
|
32
|
+
# Example
|
33
|
+
#
|
34
|
+
# response = FullContact.lookup_by_phone('+910020000200')
|
35
|
+
def lookup_by_phone(phone, options = {})
|
36
|
+
options[:phone] = phone
|
37
|
+
get('person', options)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Public: Uses the person method to request more information about a specific person by twitter
|
41
|
+
#
|
42
|
+
# twitter - The twitter handle of the person being looked up.
|
43
|
+
# options - Hash containing additional arguments (optional) (default: {})
|
44
|
+
# :timeOutSeconds - Wait for specified time, before returning a 202 (optional)
|
45
|
+
# :queue - Enqueue this email for indexing (optional)
|
46
|
+
# :callback - If specified, the response will be wrapped as JSONP in a function call. (optional)
|
47
|
+
# :webhookUrl - Delivers lookup response at specified url (required for webhook calls)
|
48
|
+
# :webhookId - Id for tracking the webhook
|
49
|
+
#
|
50
|
+
# Example
|
51
|
+
#
|
52
|
+
# response = FullContact.lookup_by_twitter('prafulla')
|
53
|
+
def lookup_by_twitter(twitter, options = {})
|
54
|
+
options[:twitter] = twitter
|
55
|
+
get('person', options)
|
56
|
+
end
|
57
|
+
|
58
|
+
# Public: Uses the person method to request more information about a specific person by facebook
|
59
|
+
#
|
60
|
+
# facebookUsername - The facebook username of the person being looked up.
|
61
|
+
# options - Hash containing additional arguments (optional) (default: {})
|
62
|
+
# :timeOutSeconds - Wait for specified time, before returning a 202 (optional)
|
63
|
+
# :queue - Enqueue this email for indexing (optional)
|
64
|
+
# :callback - If specified, the response will be wrapped as JSONP in a function call. (optional)
|
65
|
+
# :webhookUrl - Delivers lookup response at specified url (required for webhook calls)
|
66
|
+
# :webhookId - Id for tracking the webhook
|
67
|
+
#
|
68
|
+
# Example
|
69
|
+
#
|
70
|
+
# response = FullContact.lookup_by_facebook('prafullakiran')
|
71
|
+
def lookup_by_facebook(facebookUsername, options = {})
|
72
|
+
options[:facebookUsername] = facebookUsername
|
73
|
+
get('person', options)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Public: Uses the person method to request more information about a specific person by vCard
|
77
|
+
#
|
78
|
+
# vcard_data - vcard information of the user being looked up (as a string)
|
79
|
+
# options - Hash containing additional arguments (optional) (default: {})
|
80
|
+
# :queue - Enqueue this email for indexing (optional)
|
81
|
+
#
|
82
|
+
# Example
|
83
|
+
#
|
84
|
+
# response = FullContact.lookup_by_vcard(vcard_data)
|
85
|
+
def lookup_by_vcard(vcard_data, options = {})
|
86
|
+
self.format = 'vcf'
|
87
|
+
options[:content_type] = 'text/x-vcard'
|
88
|
+
options[:request_body] = vcard_data
|
89
|
+
post('person', options)
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|