foursquare2 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.0
1
+ 1.8.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "foursquare2"
8
- s.version = "1.7.0"
8
+ s.version = "1.8.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Matt Mueller", "Marco Moura"]
12
- s.date = "2012-07-08"
12
+ s.date = "2012-07-22"
13
13
  s.description = "Gives access to all endpoints in version 2 of foursquare's API with syntax that will be familiar to those who used the original foursquare gem by Jeremy Welch."
14
14
  s.email = ["muellermr@gmail.com", "email@marcomoura.com"]
15
15
  s.extra_rdoc_files = [
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  "lib/foursquare2/campaigns.rb",
30
30
  "lib/foursquare2/checkins.rb",
31
31
  "lib/foursquare2/client.rb",
32
+ "lib/foursquare2/lists.rb",
32
33
  "lib/foursquare2/pages.rb",
33
34
  "lib/foursquare2/photos.rb",
34
35
  "lib/foursquare2/settings.rb",
@@ -42,6 +43,12 @@ Gem::Specification.new do |s|
42
43
  "test/fixtures/error.json",
43
44
  "test/fixtures/explore_venues.json",
44
45
  "test/fixtures/friend_checkins.json",
46
+ "test/fixtures/list.json",
47
+ "test/fixtures/list_created.json",
48
+ "test/fixtures/list_followed.json",
49
+ "test/fixtures/list_item.json",
50
+ "test/fixtures/list_moved_item.json",
51
+ "test/fixtures/list_updated.json",
45
52
  "test/fixtures/managed_venues.json",
46
53
  "test/fixtures/no_venues_by_tip.json",
47
54
  "test/fixtures/page.json",
@@ -58,6 +65,7 @@ Gem::Specification.new do |s|
58
65
  "test/fixtures/suggest_completion_venues.json",
59
66
  "test/fixtures/tip.json",
60
67
  "test/fixtures/user.json",
68
+ "test/fixtures/user_lists.json",
61
69
  "test/fixtures/user_mayorships.json",
62
70
  "test/fixtures/user_tips.json",
63
71
  "test/fixtures/user_tips_empty.json",
@@ -70,6 +78,7 @@ Gem::Specification.new do |s|
70
78
  "test/test_campaigns.rb",
71
79
  "test/test_checkins.rb",
72
80
  "test/test_client.rb",
81
+ "test/test_lists.rb",
73
82
  "test/test_pages.rb",
74
83
  "test/test_photos.rb",
75
84
  "test/test_specials.rb",
@@ -9,7 +9,7 @@ module Foursquare2
9
9
  def filter tips, term
10
10
  tip = []
11
11
  unless tips.nil?
12
- tips.items.each do |check_tip|
12
+ tips.items.each do |check_tip|
13
13
  tip << check_tip if check_tip.text.downcase.include? term.downcase
14
14
  end
15
15
  end
@@ -27,9 +27,10 @@ module Foursquare2
27
27
  require 'foursquare2/checkins'
28
28
  require 'foursquare2/venues'
29
29
  require 'foursquare2/pages'
30
+ require 'foursquare2/lists'
30
31
  require 'foursquare2/client'
31
32
  require 'foursquare2/api_error'
32
-
33
+
33
34
 
34
35
  end
35
36
 
@@ -20,6 +20,7 @@ module Foursquare2
20
20
  include Users
21
21
  include Pages
22
22
  include Campaigns
23
+ include Lists
23
24
 
24
25
  attr_reader :client_id, :client_secret, :oauth_token, :api_version
25
26
 
@@ -0,0 +1,113 @@
1
+ module Foursquare2
2
+ module Lists
3
+
4
+ # Retrieve information about a list.
5
+ #
6
+ # @param [String] list_id - The id of the list to retrieve.
7
+ # @param [Hash] options
8
+ # @option options Integer :limit - Number of results to return, up to 200.
9
+ # @option options Integer :offset - The number of results to skip. Used to page through results.
10
+
11
+ def list(list_id, options={})
12
+ response = connection.get do |req|
13
+ req.url "lists/#{list_id}", options
14
+ end
15
+ return_error_or_body(response, response.body.response.list)
16
+ end
17
+
18
+ # Add a list: See https://developer.foursquare.com/docs/lists/add
19
+ #
20
+ # @param [Hash] options
21
+ # @option options String :name - (required) The name of the list
22
+ # @option options String :description - The description of the list.
23
+ # @option options Boolean :collaborative - Boolean indicating if this list can be edited by friends.
24
+ # @option options String :photoId - The id of a photo that should be set as the list photo.
25
+
26
+ def add_list(options={})
27
+ response = connection.post do |req|
28
+ req.url "lists/add", options
29
+ end
30
+ return_error_or_body(response, response.body.response.list)
31
+ end
32
+
33
+ # Follow a list: https://developer.foursquare.com/docs/lists/follow
34
+ #
35
+ # @param [String] list_id - The id of the list to follow.
36
+
37
+ def follow_list(list_id)
38
+ response = connection.post "lists/#{list_id}/follow"
39
+ return_error_or_body(response, response.body.response.list)
40
+ end
41
+
42
+ # Unfollow a list: https://developer.foursquare.com/docs/lists/unfollow
43
+ #
44
+ # @param [String] list_id - The id of the list to unfollow.
45
+
46
+ def unfollow_list(list_id)
47
+ response = connection.post "lists/#{list_id}/unfollow"
48
+ return_error_or_body(response, response.body.response.list)
49
+ end
50
+
51
+ # Update a list: https://developer.foursquare.com/docs/lists/update
52
+ #
53
+ # @param [String] list_id - The id of the list to update
54
+ # @param [Hash] options
55
+ # @option options String :name - The name of the list
56
+ # @option options String :description - The description of the list.
57
+ # @option options Boolean :collaborative - Boolean indicating if this list can be edited by friends.
58
+ # @option options String :photoId - The id of a photo that should be set as the list photo.
59
+
60
+ def update_list(list_id, options={})
61
+ response = connection.post do |req|
62
+ req.url "lists/#{list_id}/update", options
63
+ end
64
+ return_error_or_body(response, response.body.response.list)
65
+ end
66
+
67
+ # Add an item to a list: https://developer.foursquare.com/docs/lists/additem
68
+ #
69
+ # @param [String] list_id - The id of the list to update
70
+ # @param [Hash] options (all optional)
71
+ # @option options String :venueId - A venue to add to the list.
72
+ # @option options String :text - text to add to item
73
+ # @option options String :url - associate a url with the tip
74
+ # @option options String :tipId - Used to add a tip to a list
75
+ # @option options String :listId - Used with itemId to copy item from a list
76
+ # @option options String :itemId - Used with listId to copy item from a list
77
+
78
+ def add_list_item(list_id, options={})
79
+ response = connection.post do |req|
80
+ req.url "lists/#{list_id}/additem", options
81
+ end
82
+ return_error_or_body(response, response.body.response.item)
83
+ end
84
+
85
+ # Delete an item from a list: https://developer.foursquare.com/docs/lists/deleteitem
86
+ #
87
+ # @param [String] list_id - The id of the list to delete item from
88
+ # @param [String] item_id = The id of the item to delete from list
89
+
90
+ def delete_list_item(list_id, item_id)
91
+ response = connection.post do |req|
92
+ req.url "lists/#{list_id}/deleteitem", :itemId => item_id
93
+ end
94
+ return_error_or_body(response, response.body.response.item)
95
+ end
96
+
97
+ # Move an item on a list: https://developer.foursquare.com/docs/lists/moveitem
98
+ #
99
+ # @param [String] list_id - The id of the list on which the item is moved
100
+ # @param [String] item_id = The id of the item to move
101
+ # @param [Hash] options
102
+ # @option options String :beforeId - (optional) move itemId before beforeId
103
+ # @option options String :afterId - (optional) move itemId after afterId
104
+
105
+ def move_list_item(list_id, item_id, options={})
106
+ response = connection.post do |req|
107
+ req.url "lists/#{list_id}/moveitem", {:itemId => item_id}.merge(options)
108
+ end
109
+ return_error_or_body(response, response.body.response.list)
110
+ end
111
+
112
+ end
113
+ end
@@ -154,6 +154,20 @@ module Foursquare2
154
154
  return_error_or_body(response, response.body.response.mayorships)
155
155
  end
156
156
 
157
+ # Get the lists for a given user.
158
+ #
159
+ # @param [String] user_id - The user to retrieve lists for.
160
+ # @param [Hash] options
161
+ # @option options String :group - One of: created, edited, followed, friends, or suggestions
162
+ # @option options String :ll - Location of the user, required in order to receive the suggested group.
163
+
164
+ def user_lists(user_id, options={})
165
+ response = connection.get do |req|
166
+ req.url "users/#{user_id}/lists", options
167
+ end
168
+ return_error_or_body(response, response.body.response.lists)
169
+ end
170
+
157
171
  # Request friendship with a user
158
172
  #
159
173
  # @param [String] user_id - The user to request friendship with.
@@ -163,7 +177,7 @@ module Foursquare2
163
177
  req.url "users/#{user_id}/request"
164
178
  end
165
179
  return_error_or_body(response, response.body.response)
166
- end
180
+ end
167
181
 
168
182
  # Unfriend a user
169
183
  #
@@ -174,7 +188,7 @@ module Foursquare2
174
188
  req.url "users/#{user_id}/unfriend"
175
189
  end
176
190
  return_error_or_body(response, response.body.response)
177
- end
191
+ end
178
192
 
179
193
  # Approve friendship with a user.
180
194
  #
@@ -185,7 +199,7 @@ module Foursquare2
185
199
  req.url "users/#{user_id}/approve"
186
200
  end
187
201
  return_error_or_body(response, response.body.response)
188
- end
202
+ end
189
203
 
190
204
  # Deny friendship with a user.
191
205
  #
@@ -196,7 +210,7 @@ module Foursquare2
196
210
  req.url "users/#{user_id}/deny"
197
211
  end
198
212
  return_error_or_body(response, response.body.response)
199
- end
213
+ end
200
214
 
201
215
  # Set pings for a friend
202
216
  #
@@ -208,7 +222,7 @@ module Foursquare2
208
222
  req.url "users/#{user_id}/setpings", value
209
223
  end
210
224
  return_error_or_body(response, response.body.response)
211
- end
225
+ end
212
226
 
213
227
  end
214
228
  end
@@ -0,0 +1,1379 @@
1
+ {
2
+ "meta": {
3
+ "code": 200
4
+ },
5
+ "notifications": [
6
+ {
7
+ "type": "notificationTray",
8
+ "item": {
9
+ "unreadCount": 0
10
+ }
11
+ }
12
+ ],
13
+ "response": {
14
+ "list": {
15
+ "id": "4f230d90e4b0b653a21ffd0d",
16
+ "name": "Restaurants to Try",
17
+ "description": "There's too many in this city... gotta start keeping track of which one's I keep hearing about!",
18
+ "type": "others",
19
+ "user": {
20
+ "id": "302686",
21
+ "firstName": "Jesse",
22
+ "lastName": "L.",
23
+ "photo": "https://is1.4sqi.net/userpix_thumbs/JMTL2G51KI3G1TBV.jpg",
24
+ "tips": {
25
+ "count": 20
26
+ },
27
+ "lists": {
28
+ "groups": [
29
+ {
30
+ "type": "created",
31
+ "count": 4,
32
+ "items": []
33
+ }
34
+ ]
35
+ },
36
+ "gender": "male",
37
+ "homeCity": "New York, NY",
38
+ "bio": "",
39
+ "contact": {
40
+ "twitter": "jesselash",
41
+ "facebook": "584575551"
42
+ }
43
+ },
44
+ "editable": false,
45
+ "public": true,
46
+ "collaborative": false,
47
+ "url": "https://foursquare.com/jesselash/list/restaurants-to-try",
48
+ "canonicalUrl": "https://foursquare.com/jesselash/list/restaurants-to-try",
49
+ "createdAt": 1327697296,
50
+ "updatedAt": 1337967732,
51
+ "photo": {
52
+ "id": "4e750212ae60c32850f06009",
53
+ "createdAt": 1316291090,
54
+ "url": "https://is0.4sqi.net/pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0.jpg",
55
+ "sizes": {
56
+ "count": 4,
57
+ "items": [
58
+ {
59
+ "url": "https://is0.4sqi.net/pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0.jpg",
60
+ "width": 537,
61
+ "height": 720
62
+ },
63
+ {
64
+ "url": "https://is1.4sqi.net/derived_pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0_300x300.jpg",
65
+ "width": 300,
66
+ "height": 300
67
+ },
68
+ {
69
+ "url": "https://is1.4sqi.net/derived_pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0_100x100.jpg",
70
+ "width": 100,
71
+ "height": 100
72
+ },
73
+ {
74
+ "url": "https://is1.4sqi.net/derived_pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0_36x36.jpg",
75
+ "width": 36,
76
+ "height": 36
77
+ }
78
+ ]
79
+ },
80
+ "user": {
81
+ "id": "25309",
82
+ "firstName": "Guillo",
83
+ "lastName": "..",
84
+ "photo": "https://is0.4sqi.net/userpix_thumbs/EQMPM5XDGCQYNFAL.jpg",
85
+ "tips": {
86
+ "count": 42
87
+ },
88
+ "lists": {
89
+ "groups": [
90
+ {
91
+ "type": "created",
92
+ "count": 4,
93
+ "items": []
94
+ }
95
+ ]
96
+ },
97
+ "gender": "male",
98
+ "homeCity": "Brooklyn, NY",
99
+ "bio": "",
100
+ "contact": {}
101
+ },
102
+ "visibility": "public"
103
+ },
104
+ "doneCount": 0,
105
+ "visitedCount": 0,
106
+ "venueCount": 8,
107
+ "categories": {
108
+ "count": 8,
109
+ "items": [
110
+ {
111
+ "category": {
112
+ "id": "4bf58dd8d48988d1c1941735",
113
+ "name": "Mexican Restaurant",
114
+ "pluralName": "Mexican Restaurants",
115
+ "shortName": "Mexican",
116
+ "icon": {
117
+ "prefix": "https://foursquare.com/img/categories/food/mexican_",
118
+ "sizes": [
119
+ 32,
120
+ 44,
121
+ 64,
122
+ 88,
123
+ 256
124
+ ],
125
+ "name": ".png"
126
+ }
127
+ },
128
+ "count": 1
129
+ },
130
+ {
131
+ "category": {
132
+ "id": "4bf58dd8d48988d10f941735",
133
+ "name": "Indian Restaurant",
134
+ "pluralName": "Indian Restaurants",
135
+ "shortName": "Indian",
136
+ "icon": {
137
+ "prefix": "https://foursquare.com/img/categories/food/indian_",
138
+ "sizes": [
139
+ 32,
140
+ 44,
141
+ 64,
142
+ 88,
143
+ 256
144
+ ],
145
+ "name": ".png"
146
+ }
147
+ },
148
+ "count": 1
149
+ },
150
+ {
151
+ "category": {
152
+ "id": "4bf58dd8d48988d107941735",
153
+ "name": "Argentinian Restaurant",
154
+ "pluralName": "Argentinian Restaurants",
155
+ "shortName": "Argentinian",
156
+ "icon": {
157
+ "prefix": "https://foursquare.com/img/categories/food/argentinian_",
158
+ "sizes": [
159
+ 32,
160
+ 44,
161
+ 64,
162
+ 88,
163
+ 256
164
+ ],
165
+ "name": ".png"
166
+ }
167
+ },
168
+ "count": 1
169
+ },
170
+ {
171
+ "category": {
172
+ "id": "4bf58dd8d48988d1cd941735",
173
+ "name": "South American Restaurant",
174
+ "pluralName": "South American Restaurants",
175
+ "shortName": "South American",
176
+ "icon": {
177
+ "prefix": "https://foursquare.com/img/categories/food/southamerican_",
178
+ "sizes": [
179
+ 32,
180
+ 44,
181
+ 64,
182
+ 88,
183
+ 256
184
+ ],
185
+ "name": ".png"
186
+ }
187
+ },
188
+ "count": 1
189
+ },
190
+ {
191
+ "category": {
192
+ "id": "4bf58dd8d48988d151941735",
193
+ "name": "Taco Place",
194
+ "pluralName": "Taco Places",
195
+ "shortName": "Tacos",
196
+ "icon": {
197
+ "prefix": "https://foursquare.com/img/categories/food/tacos_",
198
+ "sizes": [
199
+ 32,
200
+ 44,
201
+ 64,
202
+ 88,
203
+ 256
204
+ ],
205
+ "name": ".png"
206
+ }
207
+ },
208
+ "count": 1
209
+ },
210
+ {
211
+ "category": {
212
+ "id": "4bf58dd8d48988d1be941735",
213
+ "name": "Latin American Restaurant",
214
+ "pluralName": "Latin American Restaurants",
215
+ "shortName": "Latin American",
216
+ "icon": {
217
+ "prefix": "https://foursquare.com/img/categories/food/default_",
218
+ "sizes": [
219
+ 32,
220
+ 44,
221
+ 64,
222
+ 88,
223
+ 256
224
+ ],
225
+ "name": ".png"
226
+ }
227
+ },
228
+ "count": 1
229
+ },
230
+ {
231
+ "category": {
232
+ "id": "4bf58dd8d48988d123941735",
233
+ "name": "Wine Bar",
234
+ "pluralName": "Wine Bars",
235
+ "shortName": "Wine Bar",
236
+ "icon": {
237
+ "prefix": "https://foursquare.com/img/categories/nightlife/wine_",
238
+ "sizes": [
239
+ 32,
240
+ 44,
241
+ 64,
242
+ 88,
243
+ 256
244
+ ],
245
+ "name": ".png"
246
+ }
247
+ },
248
+ "count": 1
249
+ },
250
+ {
251
+ "category": {
252
+ "id": "4bf58dd8d48988d109941735",
253
+ "name": "Eastern European Restaurant",
254
+ "pluralName": "Eastern European Restaurants",
255
+ "shortName": "Eastern European",
256
+ "icon": {
257
+ "prefix": "https://foursquare.com/img/categories/food/default_",
258
+ "sizes": [
259
+ 32,
260
+ 44,
261
+ 64,
262
+ 88,
263
+ 256
264
+ ],
265
+ "name": ".png"
266
+ }
267
+ },
268
+ "count": 1
269
+ }
270
+ ]
271
+ },
272
+ "following": false,
273
+ "followers": {
274
+ "count": 1
275
+ },
276
+ "collaborators": {
277
+ "count": 0,
278
+ "items": []
279
+ },
280
+ "listItems": {
281
+ "count": 8,
282
+ "items": [
283
+ {
284
+ "id": "v4a01c477f964a520f9701fe3",
285
+ "createdAt": 1327697309,
286
+ "todo": false,
287
+ "done": false,
288
+ "visitedCount": 0,
289
+ "venue": {
290
+ "id": "4a01c477f964a520f9701fe3",
291
+ "name": "El Almacen",
292
+ "contact": {
293
+ "phone": "7182187284",
294
+ "formattedPhone": "(718) 218-7284"
295
+ },
296
+ "location": {
297
+ "address": "557 Driggs Ave",
298
+ "crossStreet": "btw 6th and 7th",
299
+ "lat": 40.71686922,
300
+ "lng": -73.956499,
301
+ "postalCode": "11211",
302
+ "city": "Brooklyn",
303
+ "state": "NY",
304
+ "country": "United States",
305
+ "cc": "US"
306
+ },
307
+ "categories": [
308
+ {
309
+ "id": "4bf58dd8d48988d107941735",
310
+ "name": "Argentinian Restaurant",
311
+ "pluralName": "Argentinian Restaurants",
312
+ "shortName": "Argentinian",
313
+ "icon": {
314
+ "prefix": "https://foursquare.com/img/categories/food/argentinian_",
315
+ "sizes": [
316
+ 32,
317
+ 44,
318
+ 64,
319
+ 88,
320
+ 256
321
+ ],
322
+ "name": ".png"
323
+ },
324
+ "primary": true
325
+ }
326
+ ],
327
+ "verified": false,
328
+ "stats": {
329
+ "checkinsCount": 2490,
330
+ "usersCount": 1618,
331
+ "tipCount": 70
332
+ },
333
+ "likes": {
334
+ "count": 3,
335
+ "groups": [
336
+ {
337
+ "type": "others",
338
+ "count": 3,
339
+ "items": [
340
+ {
341
+ "id": "227554",
342
+ "firstName": "Aya",
343
+ "lastName": "R.",
344
+ "photo": "https://is0.4sqi.net/userpix_thumbs/GTHGNQO1LSHTA5VJ.jpg",
345
+ "tips": {
346
+ "count": 35
347
+ },
348
+ "gender": "female",
349
+ "homeCity": "Brooklyn, New York",
350
+ "bio": "",
351
+ "contact": {
352
+ "twitter": "ayarosen",
353
+ "facebook": "706145619"
354
+ }
355
+ },
356
+ {
357
+ "id": "227465",
358
+ "firstName": "Ned",
359
+ "lastName": "R.",
360
+ "photo": "https://is0.4sqi.net/userpix_thumbs/RZERQRTUEPCQHOLS.jpg",
361
+ "tips": {
362
+ "count": 5
363
+ },
364
+ "gender": "male",
365
+ "homeCity": "New York, NY",
366
+ "bio": "",
367
+ "contact": {
368
+ "twitter": "nedrosen",
369
+ "facebook": "623193271"
370
+ }
371
+ },
372
+ {
373
+ "id": "1425521",
374
+ "firstName": "Roberta",
375
+ "lastName": "C.",
376
+ "photo": "https://is1.4sqi.net/userpix_thumbs/2GTFVEXVNGHKX4RQ.jpg",
377
+ "tips": {
378
+ "count": 21
379
+ },
380
+ "gender": "female",
381
+ "homeCity": "Milano",
382
+ "bio": "",
383
+ "contact": {
384
+ "twitter": "robertacerri",
385
+ "facebook": "522855858"
386
+ }
387
+ }
388
+ ]
389
+ }
390
+ ],
391
+ "summary": "Aya R, Ned R & Roberta C"
392
+ },
393
+ "like": false,
394
+ "menu": {
395
+ "type": "foodAndBeverage",
396
+ "url": "https://foursquare.com/v/el-almacen/4a01c477f964a520f9701fe3/menu",
397
+ "mobileUrl": "https://foursquare.com/v/4a01c477f964a520f9701fe3/device_menu"
398
+ },
399
+ "beenHere": {
400
+ "count": 0,
401
+ "marked": false
402
+ },
403
+ "specials": {
404
+ "count": 0,
405
+ "items": []
406
+ }
407
+ },
408
+ "listed": {
409
+ "count": 0,
410
+ "items": []
411
+ }
412
+ },
413
+ {
414
+ "id": "v4d127ee92e5837042675e4d1",
415
+ "createdAt": 1327697316,
416
+ "todo": false,
417
+ "done": false,
418
+ "visitedCount": 0,
419
+ "venue": {
420
+ "id": "4d127ee92e5837042675e4d1",
421
+ "name": "Mesa Azteca",
422
+ "contact": {},
423
+ "location": {
424
+ "address": "91 Wyckoff Ave",
425
+ "crossStreet": "btwn Suydam St & Hart St",
426
+ "lat": 40.70521114127741,
427
+ "lng": -73.92014043499093,
428
+ "postalCode": "11237",
429
+ "city": "Brooklyn",
430
+ "state": "New York",
431
+ "country": "United States",
432
+ "cc": "US"
433
+ },
434
+ "categories": [
435
+ {
436
+ "id": "4bf58dd8d48988d1c1941735",
437
+ "name": "Mexican Restaurant",
438
+ "pluralName": "Mexican Restaurants",
439
+ "shortName": "Mexican",
440
+ "icon": {
441
+ "prefix": "https://foursquare.com/img/categories/food/mexican_",
442
+ "sizes": [
443
+ 32,
444
+ 44,
445
+ 64,
446
+ 88,
447
+ 256
448
+ ],
449
+ "name": ".png"
450
+ },
451
+ "primary": true
452
+ }
453
+ ],
454
+ "verified": false,
455
+ "stats": {
456
+ "checkinsCount": 419,
457
+ "usersCount": 239,
458
+ "tipCount": 12
459
+ },
460
+ "likes": {
461
+ "count": 2,
462
+ "groups": [
463
+ {
464
+ "type": "others",
465
+ "count": 2,
466
+ "items": [
467
+ {
468
+ "id": "8681466",
469
+ "firstName": "Jacqueline",
470
+ "lastName": "V.",
471
+ "photo": "https://is0.4sqi.net/userpix_thumbs/TQSM51QJRVNDBQJU.jpg",
472
+ "tips": {
473
+ "count": 82
474
+ },
475
+ "lists": {
476
+ "groups": [
477
+ {
478
+ "type": "created",
479
+ "count": 1,
480
+ "items": []
481
+ }
482
+ ]
483
+ },
484
+ "gender": "female",
485
+ "homeCity": "Brooklyn, NY",
486
+ "bio": "",
487
+ "contact": {
488
+ "twitter": "jrvandusen",
489
+ "facebook": "17403465"
490
+ }
491
+ },
492
+ {
493
+ "id": "30255497",
494
+ "firstName": "Bobby",
495
+ "lastName": "K.",
496
+ "photo": "https://is0.4sqi.net/userpix_thumbs/QPIKDQWSKF11JS1M.jpg",
497
+ "tips": {
498
+ "count": 0
499
+ },
500
+ "lists": {
501
+ "groups": [
502
+ {
503
+ "type": "created",
504
+ "count": 1,
505
+ "items": []
506
+ }
507
+ ]
508
+ },
509
+ "gender": "male",
510
+ "homeCity": "New York, NY",
511
+ "bio": "",
512
+ "contact": {
513
+ "facebook": "726925503"
514
+ }
515
+ }
516
+ ]
517
+ }
518
+ ],
519
+ "summary": "Jacqueline V & Bobby K"
520
+ },
521
+ "like": false,
522
+ "beenHere": {
523
+ "count": 0,
524
+ "marked": false
525
+ },
526
+ "specials": {
527
+ "count": 0,
528
+ "items": []
529
+ }
530
+ },
531
+ "listed": {
532
+ "count": 0,
533
+ "items": []
534
+ }
535
+ },
536
+ {
537
+ "id": "v4b525a4ef964a520d17827e3",
538
+ "createdAt": 1327697327,
539
+ "todo": false,
540
+ "done": false,
541
+ "visitedCount": 0,
542
+ "venue": {
543
+ "id": "4b525a4ef964a520d17827e3",
544
+ "name": "Tabar?",
545
+ "contact": {
546
+ "phone": "3473350187",
547
+ "formattedPhone": "(347) 335-0187"
548
+ },
549
+ "location": {
550
+ "address": "221 S 1st St",
551
+ "crossStreet": "btw Driggs & Roebling",
552
+ "lat": 40.713051,
553
+ "lng": -73.959039,
554
+ "postalCode": "11211",
555
+ "city": "Brooklyn",
556
+ "state": "NY",
557
+ "country": "United States",
558
+ "cc": "US"
559
+ },
560
+ "categories": [
561
+ {
562
+ "id": "4bf58dd8d48988d1cd941735",
563
+ "name": "South American Restaurant",
564
+ "pluralName": "South American Restaurants",
565
+ "shortName": "South American",
566
+ "icon": {
567
+ "prefix": "https://foursquare.com/img/categories/food/southamerican_",
568
+ "sizes": [
569
+ 32,
570
+ 44,
571
+ 64,
572
+ 88,
573
+ 256
574
+ ],
575
+ "name": ".png"
576
+ },
577
+ "primary": true
578
+ }
579
+ ],
580
+ "verified": true,
581
+ "stats": {
582
+ "checkinsCount": 1162,
583
+ "usersCount": 901,
584
+ "tipCount": 29
585
+ },
586
+ "url": "http://www.tabarenyc.com",
587
+ "likes": {
588
+ "count": 1,
589
+ "groups": [
590
+ {
591
+ "type": "others",
592
+ "count": 1,
593
+ "items": [
594
+ {
595
+ "id": "2621492",
596
+ "firstName": "Jordan",
597
+ "lastName": "O.",
598
+ "photo": "https://is1.4sqi.net/userpix_thumbs/EJFTJWZBVDWFXES4.jpg",
599
+ "tips": {
600
+ "count": 5
601
+ },
602
+ "lists": {
603
+ "groups": [
604
+ {
605
+ "type": "created",
606
+ "count": 1,
607
+ "items": []
608
+ }
609
+ ]
610
+ },
611
+ "gender": "male",
612
+ "homeCity": "New York, NY",
613
+ "bio": "",
614
+ "contact": {
615
+ "twitter": "jordanorelli",
616
+ "facebook": "1804244"
617
+ }
618
+ }
619
+ ]
620
+ }
621
+ ],
622
+ "summary": "Jordan O"
623
+ },
624
+ "like": false,
625
+ "beenHere": {
626
+ "count": 0,
627
+ "marked": false
628
+ },
629
+ "specials": {
630
+ "count": 1,
631
+ "items": [
632
+ {
633
+ "id": "4f8c97b67716bda982fbfb33",
634
+ "type": "frequency",
635
+ "message": "complementary glass of wine or cocktail",
636
+ "imageUrls": {
637
+ "count": 0
638
+ },
639
+ "description": "Unlocked every 3 check-ins",
640
+ "finePrint": "Dine in only. Must be 21+. Must be redeemed with food purchase.",
641
+ "icon": "frequency",
642
+ "title": "Loyalty Special",
643
+ "provider": "foursquare",
644
+ "redemption": "standard",
645
+ "likes": {
646
+ "count": 0,
647
+ "groups": []
648
+ }
649
+ }
650
+ ]
651
+ }
652
+ },
653
+ "listed": {
654
+ "count": 0,
655
+ "items": []
656
+ }
657
+ },
658
+ {
659
+ "id": "v4ba19cb0f964a520c2c337e3",
660
+ "createdAt": 1329011647,
661
+ "todo": false,
662
+ "done": false,
663
+ "visitedCount": 0,
664
+ "venue": {
665
+ "id": "4ba19cb0f964a520c2c337e3",
666
+ "name": "The Bodega",
667
+ "contact": {
668
+ "twitter": "The_Bodega"
669
+ },
670
+ "location": {
671
+ "address": "24 St Nicholas Ave.",
672
+ "crossStreet": "at Troutman St.",
673
+ "lat": 40.70759614636528,
674
+ "lng": -73.92180919647217,
675
+ "postalCode": "11237",
676
+ "city": "Brooklyn",
677
+ "state": "NY",
678
+ "country": "United States",
679
+ "cc": "US"
680
+ },
681
+ "categories": [
682
+ {
683
+ "id": "4bf58dd8d48988d123941735",
684
+ "name": "Wine Bar",
685
+ "pluralName": "Wine Bars",
686
+ "shortName": "Wine Bar",
687
+ "icon": {
688
+ "prefix": "https://foursquare.com/img/categories/nightlife/wine_",
689
+ "sizes": [
690
+ 32,
691
+ 44,
692
+ 64,
693
+ 88,
694
+ 256
695
+ ],
696
+ "name": ".png"
697
+ },
698
+ "primary": true
699
+ }
700
+ ],
701
+ "verified": true,
702
+ "stats": {
703
+ "checkinsCount": 1961,
704
+ "usersCount": 644,
705
+ "tipCount": 22
706
+ },
707
+ "url": "http://thebodegabk.com",
708
+ "likes": {
709
+ "count": 1,
710
+ "groups": [
711
+ {
712
+ "type": "others",
713
+ "count": 1,
714
+ "items": [
715
+ {
716
+ "id": "8681466",
717
+ "firstName": "Jacqueline",
718
+ "lastName": "V.",
719
+ "photo": "https://is0.4sqi.net/userpix_thumbs/TQSM51QJRVNDBQJU.jpg",
720
+ "tips": {
721
+ "count": 82
722
+ },
723
+ "lists": {
724
+ "groups": [
725
+ {
726
+ "type": "created",
727
+ "count": 1,
728
+ "items": []
729
+ }
730
+ ]
731
+ },
732
+ "gender": "female",
733
+ "homeCity": "Brooklyn, NY",
734
+ "bio": "",
735
+ "contact": {
736
+ "twitter": "jrvandusen",
737
+ "facebook": "17403465"
738
+ }
739
+ }
740
+ ]
741
+ }
742
+ ],
743
+ "summary": "Jacqueline V"
744
+ },
745
+ "like": false,
746
+ "beenHere": {
747
+ "count": 0,
748
+ "marked": false
749
+ },
750
+ "specials": {
751
+ "count": 0,
752
+ "items": []
753
+ }
754
+ },
755
+ "listed": {
756
+ "count": 0,
757
+ "items": []
758
+ }
759
+ },
760
+ {
761
+ "id": "v4a453e4cf964a520f1a71fe3",
762
+ "createdAt": 1329276152,
763
+ "todo": false,
764
+ "done": false,
765
+ "visitedCount": 0,
766
+ "venue": {
767
+ "id": "4a453e4cf964a520f1a71fe3",
768
+ "name": "Empanada Mama",
769
+ "contact": {
770
+ "phone": "2126989008",
771
+ "formattedPhone": "(212) 698-9008"
772
+ },
773
+ "location": {
774
+ "address": "763 9th Ave.",
775
+ "crossStreet": "btwn 51st & 52nd St.",
776
+ "lat": 40.764217,
777
+ "lng": -73.988321,
778
+ "postalCode": "10019",
779
+ "city": "New York",
780
+ "state": "NY",
781
+ "country": "United States",
782
+ "cc": "US"
783
+ },
784
+ "categories": [
785
+ {
786
+ "id": "4bf58dd8d48988d1be941735",
787
+ "name": "Latin American Restaurant",
788
+ "pluralName": "Latin American Restaurants",
789
+ "shortName": "Latin American",
790
+ "icon": {
791
+ "prefix": "https://foursquare.com/img/categories/food/default_",
792
+ "sizes": [
793
+ 32,
794
+ 44,
795
+ 64,
796
+ 88,
797
+ 256
798
+ ],
799
+ "name": ".png"
800
+ },
801
+ "primary": true
802
+ }
803
+ ],
804
+ "verified": false,
805
+ "stats": {
806
+ "checkinsCount": 8711,
807
+ "usersCount": 4885,
808
+ "tipCount": 151
809
+ },
810
+ "url": "http://www.empmamanyc.com/",
811
+ "likes": {
812
+ "count": 12,
813
+ "groups": [
814
+ {
815
+ "type": "others",
816
+ "count": 12,
817
+ "items": []
818
+ }
819
+ ],
820
+ "summary": "12 likes"
821
+ },
822
+ "like": false,
823
+ "menu": {
824
+ "type": "foodAndBeverage",
825
+ "url": "https://foursquare.com/v/empanada-mama/4a453e4cf964a520f1a71fe3/menu",
826
+ "mobileUrl": "https://foursquare.com/v/4a453e4cf964a520f1a71fe3/device_menu"
827
+ },
828
+ "beenHere": {
829
+ "count": 0,
830
+ "marked": false
831
+ },
832
+ "specials": {
833
+ "count": 0,
834
+ "items": []
835
+ }
836
+ },
837
+ "listed": {
838
+ "count": 0,
839
+ "items": []
840
+ }
841
+ },
842
+ {
843
+ "id": "v4a916658f964a520151a20e3",
844
+ "createdAt": 1329356513,
845
+ "todo": false,
846
+ "done": false,
847
+ "visitedCount": 0,
848
+ "venue": {
849
+ "id": "4a916658f964a520151a20e3",
850
+ "name": "Karczma",
851
+ "contact": {
852
+ "phone": "7183491744",
853
+ "formattedPhone": "(718) 349-1744"
854
+ },
855
+ "location": {
856
+ "address": "136 Greenpoint Avenue",
857
+ "lat": 40.730149914529,
858
+ "lng": -73.95505413408203,
859
+ "postalCode": "11222",
860
+ "city": "Brooklyn",
861
+ "state": "NY",
862
+ "country": "United States",
863
+ "cc": "US"
864
+ },
865
+ "categories": [
866
+ {
867
+ "id": "4bf58dd8d48988d109941735",
868
+ "name": "Eastern European Restaurant",
869
+ "pluralName": "Eastern European Restaurants",
870
+ "shortName": "Eastern European",
871
+ "icon": {
872
+ "prefix": "https://foursquare.com/img/categories/food/default_",
873
+ "sizes": [
874
+ 32,
875
+ 44,
876
+ 64,
877
+ 88,
878
+ 256
879
+ ],
880
+ "name": ".png"
881
+ },
882
+ "primary": true
883
+ }
884
+ ],
885
+ "verified": false,
886
+ "stats": {
887
+ "checkinsCount": 1293,
888
+ "usersCount": 825,
889
+ "tipCount": 22
890
+ },
891
+ "url": "http://karczmabrooklyn.com/",
892
+ "likes": {
893
+ "count": 3,
894
+ "groups": [
895
+ {
896
+ "type": "others",
897
+ "count": 3,
898
+ "items": [
899
+ {
900
+ "id": "1530851",
901
+ "firstName": "Talisa",
902
+ "photo": "https://is1.4sqi.net/userpix_thumbs/NM0SQ0HNLTQBNQOS.png",
903
+ "tips": {
904
+ "count": 116
905
+ },
906
+ "lists": {
907
+ "groups": [
908
+ {
909
+ "type": "created",
910
+ "count": 11,
911
+ "items": []
912
+ }
913
+ ]
914
+ },
915
+ "gender": "female",
916
+ "homeCity": "Brooklyn, NY",
917
+ "bio": "Snack patrol.",
918
+ "contact": {
919
+ "twitter": "talisa"
920
+ }
921
+ },
922
+ {
923
+ "id": "30900565",
924
+ "firstName": "Dominic",
925
+ "photo": "https://is1.4sqi.net/userpix_thumbs/5F4PCE3S2E13S5LO.jpg",
926
+ "tips": {
927
+ "count": 1
928
+ },
929
+ "gender": "male",
930
+ "homeCity": "Brooklyn, NY",
931
+ "bio": "",
932
+ "contact": {
933
+ "twitter": "itsewonder",
934
+ "facebook": "656115325"
935
+ }
936
+ },
937
+ {
938
+ "id": "2031459",
939
+ "firstName": "Maria",
940
+ "lastName": "B.",
941
+ "photo": "https://is0.4sqi.net/userpix_thumbs/ICQKTPEDK3WSLUFH.jpg",
942
+ "tips": {
943
+ "count": 19
944
+ },
945
+ "gender": "female",
946
+ "homeCity": "Brooklyn, NY",
947
+ "bio": "",
948
+ "contact": {
949
+ "facebook": "594226696"
950
+ }
951
+ }
952
+ ]
953
+ }
954
+ ],
955
+ "summary": "Talisa, Dominic & Maria B"
956
+ },
957
+ "like": false,
958
+ "menu": {
959
+ "type": "foodAndBeverage",
960
+ "url": "https://foursquare.com/v/karczma/4a916658f964a520151a20e3/menu",
961
+ "mobileUrl": "https://foursquare.com/v/4a916658f964a520151a20e3/device_menu"
962
+ },
963
+ "beenHere": {
964
+ "count": 0,
965
+ "marked": false
966
+ },
967
+ "specials": {
968
+ "count": 0,
969
+ "items": []
970
+ }
971
+ },
972
+ "listed": {
973
+ "count": 0,
974
+ "items": []
975
+ }
976
+ },
977
+ {
978
+ "id": "v4bb93b70cf2fc9b6fe64a002",
979
+ "createdAt": 1330557642,
980
+ "todo": false,
981
+ "done": false,
982
+ "visitedCount": 0,
983
+ "venue": {
984
+ "id": "4bb93b70cf2fc9b6fe64a002",
985
+ "name": "Gandhi Fine Indian Cuisine",
986
+ "contact": {},
987
+ "location": {
988
+ "address": "2032 Bedford Ave",
989
+ "crossStreet": "Bet Clarkson Ave. and Parkside Ave.",
990
+ "lat": 40.65512031,
991
+ "lng": -73.9563952,
992
+ "city": "Brooklyn",
993
+ "state": "NY",
994
+ "country": "United States",
995
+ "cc": "US"
996
+ },
997
+ "categories": [
998
+ {
999
+ "id": "4bf58dd8d48988d10f941735",
1000
+ "name": "Indian Restaurant",
1001
+ "pluralName": "Indian Restaurants",
1002
+ "shortName": "Indian",
1003
+ "icon": {
1004
+ "prefix": "https://foursquare.com/img/categories/food/indian_",
1005
+ "sizes": [
1006
+ 32,
1007
+ 44,
1008
+ 64,
1009
+ 88,
1010
+ 256
1011
+ ],
1012
+ "name": ".png"
1013
+ },
1014
+ "primary": true
1015
+ }
1016
+ ],
1017
+ "verified": false,
1018
+ "stats": {
1019
+ "checkinsCount": 181,
1020
+ "usersCount": 104,
1021
+ "tipCount": 15
1022
+ },
1023
+ "likes": {
1024
+ "count": 2,
1025
+ "groups": [
1026
+ {
1027
+ "type": "others",
1028
+ "count": 2,
1029
+ "items": [
1030
+ {
1031
+ "id": "635287",
1032
+ "firstName": "Miha",
1033
+ "lastName": "R.",
1034
+ "photo": "https://is0.4sqi.net/userpix_thumbs/ORTXGMB0MGS3BADV.jpg",
1035
+ "tips": {
1036
+ "count": 20
1037
+ },
1038
+ "gender": "male",
1039
+ "homeCity": "New York City",
1040
+ "bio": "I design, build and ship products. All the time.",
1041
+ "contact": {
1042
+ "twitter": "mihar",
1043
+ "facebook": "624306434"
1044
+ }
1045
+ },
1046
+ {
1047
+ "id": "11792294",
1048
+ "firstName": "Karen",
1049
+ "lastName": "T.",
1050
+ "photo": "https://is1.4sqi.net/userpix_thumbs/UJL1K04JKL2I32BE.jpg",
1051
+ "tips": {
1052
+ "count": 1
1053
+ },
1054
+ "gender": "female",
1055
+ "homeCity": "NY",
1056
+ "bio": "",
1057
+ "contact": {
1058
+ "facebook": "1353000138"
1059
+ }
1060
+ }
1061
+ ]
1062
+ }
1063
+ ],
1064
+ "summary": "Miha R & Karen T"
1065
+ },
1066
+ "like": false,
1067
+ "beenHere": {
1068
+ "count": 0,
1069
+ "marked": false
1070
+ },
1071
+ "specials": {
1072
+ "count": 0,
1073
+ "items": []
1074
+ }
1075
+ },
1076
+ "listed": {
1077
+ "count": 0,
1078
+ "items": []
1079
+ }
1080
+ },
1081
+ {
1082
+ "id": "t4d404fc934f42d43b2624385",
1083
+ "createdAt": 1337967732,
1084
+ "todo": false,
1085
+ "done": false,
1086
+ "visitedCount": 0,
1087
+ "tip": {
1088
+ "id": "4d404fc934f42d43b2624385",
1089
+ "createdAt": 1296060361,
1090
+ "text": "No cubed chicken or orange cheese here... just shockingly simple, unpretentious and delicious street style Mexican food. - Anthony Bourdain, host of No Reservations",
1091
+ "likes": {
1092
+ "count": 68,
1093
+ "groups": [
1094
+ {
1095
+ "type": "others",
1096
+ "count": 2,
1097
+ "items": [
1098
+ {
1099
+ "id": "1012108",
1100
+ "firstName": "Ezzy",
1101
+ "lastName": "C.",
1102
+ "photo": "https://is1.4sqi.net/userpix_thumbs/X24KGI00RDY1JXDB.jpg",
1103
+ "tips": {
1104
+ "count": 2
1105
+ },
1106
+ "gender": "male",
1107
+ "homeCity": "Brooklyn, NY",
1108
+ "bio": "",
1109
+ "contact": {
1110
+ "twitter": "esmeraldoc",
1111
+ "facebook": "1145400301"
1112
+ }
1113
+ },
1114
+ {
1115
+ "id": "25966153",
1116
+ "firstName": "Jude",
1117
+ "lastName": "S.",
1118
+ "photo": "https://is0.4sqi.net/userpix_thumbs/10V5JE5WGOUNHB5K.jpg",
1119
+ "tips": {
1120
+ "count": 1
1121
+ },
1122
+ "gender": "female",
1123
+ "homeCity": "Las Vegas, NV",
1124
+ "bio": "",
1125
+ "contact": {
1126
+ "facebook": "710377693"
1127
+ }
1128
+ }
1129
+ ]
1130
+ }
1131
+ ],
1132
+ "summary": "68 likes"
1133
+ },
1134
+ "like": false,
1135
+ "todo": {
1136
+ "count": 71
1137
+ },
1138
+ "done": {
1139
+ "count": 67
1140
+ },
1141
+ "user": {
1142
+ "id": "4579353",
1143
+ "firstName": "Travel Channel",
1144
+ "photo": "https://is1.4sqi.net/userpix_thumbs/LJL3OPUPJLS2MALA.png",
1145
+ "type": "page",
1146
+ "followers": {
1147
+ "count": 177253,
1148
+ "groups": []
1149
+ },
1150
+ "tips": {
1151
+ "count": 649
1152
+ },
1153
+ "lists": {
1154
+ "groups": [
1155
+ {
1156
+ "type": "created",
1157
+ "count": 25,
1158
+ "items": []
1159
+ }
1160
+ ]
1161
+ },
1162
+ "gender": "none",
1163
+ "homeCity": "Everywhere, United States",
1164
+ "bio": "",
1165
+ "contact": {
1166
+ "twitter": "travelchannel",
1167
+ "facebook": "15672033850"
1168
+ }
1169
+ }
1170
+ },
1171
+ "photo": {
1172
+ "id": "4e750212ae60c32850f06009",
1173
+ "createdAt": 1316291090,
1174
+ "url": "https://is0.4sqi.net/pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0.jpg",
1175
+ "sizes": {
1176
+ "count": 4,
1177
+ "items": [
1178
+ {
1179
+ "url": "https://is0.4sqi.net/pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0.jpg",
1180
+ "width": 537,
1181
+ "height": 720
1182
+ },
1183
+ {
1184
+ "url": "https://is1.4sqi.net/derived_pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0_300x300.jpg",
1185
+ "width": 300,
1186
+ "height": 300
1187
+ },
1188
+ {
1189
+ "url": "https://is1.4sqi.net/derived_pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0_100x100.jpg",
1190
+ "width": 100,
1191
+ "height": 100
1192
+ },
1193
+ {
1194
+ "url": "https://is1.4sqi.net/derived_pix/3PJWYSHPJOPVE54T4ALKRIYU1WNHX0ZSOH334HTC3KB2NYG0_36x36.jpg",
1195
+ "width": 36,
1196
+ "height": 36
1197
+ }
1198
+ ]
1199
+ },
1200
+ "user": {
1201
+ "id": "25309",
1202
+ "firstName": "Guillo",
1203
+ "lastName": "..",
1204
+ "photo": "https://is0.4sqi.net/userpix_thumbs/EQMPM5XDGCQYNFAL.jpg",
1205
+ "tips": {
1206
+ "count": 42
1207
+ },
1208
+ "lists": {
1209
+ "groups": [
1210
+ {
1211
+ "type": "created",
1212
+ "count": 4,
1213
+ "items": []
1214
+ }
1215
+ ]
1216
+ },
1217
+ "gender": "male",
1218
+ "homeCity": "Brooklyn, NY",
1219
+ "bio": "",
1220
+ "contact": {}
1221
+ },
1222
+ "visibility": "public"
1223
+ },
1224
+ "venue": {
1225
+ "id": "4a21c1caf964a520397d1fe3",
1226
+ "name": "Tortilleria Mexicana Tres Hermanos",
1227
+ "contact": {
1228
+ "phone": "7184563422",
1229
+ "formattedPhone": "(718) 456-3422"
1230
+ },
1231
+ "location": {
1232
+ "address": "271 Starr St",
1233
+ "crossStreet": "btwn St Nicholas & Wyckoff",
1234
+ "lat": 40.706516297693014,
1235
+ "lng": -73.92187995415526,
1236
+ "postalCode": "11237",
1237
+ "city": "Brooklyn",
1238
+ "state": "NY",
1239
+ "country": "United States",
1240
+ "cc": "US"
1241
+ },
1242
+ "categories": [
1243
+ {
1244
+ "id": "4bf58dd8d48988d151941735",
1245
+ "name": "Taco Place",
1246
+ "pluralName": "Taco Places",
1247
+ "shortName": "Tacos",
1248
+ "icon": {
1249
+ "prefix": "https://foursquare.com/img/categories/food/tacos_",
1250
+ "sizes": [
1251
+ 32,
1252
+ 44,
1253
+ 64,
1254
+ 88,
1255
+ 256
1256
+ ],
1257
+ "name": ".png"
1258
+ },
1259
+ "primary": true
1260
+ }
1261
+ ],
1262
+ "verified": false,
1263
+ "stats": {
1264
+ "checkinsCount": 2810,
1265
+ "usersCount": 1260,
1266
+ "tipCount": 54
1267
+ },
1268
+ "likes": {
1269
+ "count": 6,
1270
+ "groups": [
1271
+ {
1272
+ "type": "others",
1273
+ "count": 6,
1274
+ "items": [
1275
+ {
1276
+ "id": "27589401",
1277
+ "firstName": "Steven",
1278
+ "lastName": "M.",
1279
+ "photo": "https://is0.4sqi.net/userpix_thumbs/PHT1JEHLZZJDFWA0.jpg",
1280
+ "tips": {
1281
+ "count": 1
1282
+ },
1283
+ "gender": "male",
1284
+ "homeCity": "New York, NY",
1285
+ "bio": "",
1286
+ "contact": {}
1287
+ },
1288
+ {
1289
+ "id": "29921987",
1290
+ "firstName": "Lesly",
1291
+ "photo": "https://is0.4sqi.net/userpix_thumbs/TMCOR3PCUTO5TES4.jpg",
1292
+ "tips": {
1293
+ "count": 1
1294
+ },
1295
+ "lists": {
1296
+ "groups": [
1297
+ {
1298
+ "type": "created",
1299
+ "count": 1,
1300
+ "items": []
1301
+ }
1302
+ ]
1303
+ },
1304
+ "gender": "female",
1305
+ "homeCity": "Ridgewood, NY",
1306
+ "bio": "",
1307
+ "contact": {
1308
+ "facebook": "100002989644280"
1309
+ }
1310
+ },
1311
+ {
1312
+ "id": "30255497",
1313
+ "firstName": "Bobby",
1314
+ "lastName": "K.",
1315
+ "photo": "https://is0.4sqi.net/userpix_thumbs/QPIKDQWSKF11JS1M.jpg",
1316
+ "tips": {
1317
+ "count": 0
1318
+ },
1319
+ "lists": {
1320
+ "groups": [
1321
+ {
1322
+ "type": "created",
1323
+ "count": 1,
1324
+ "items": []
1325
+ }
1326
+ ]
1327
+ },
1328
+ "gender": "male",
1329
+ "homeCity": "New York, NY",
1330
+ "bio": "",
1331
+ "contact": {
1332
+ "facebook": "726925503"
1333
+ }
1334
+ },
1335
+ {
1336
+ "id": "19462916",
1337
+ "firstName": "Harry",
1338
+ "lastName": "G.",
1339
+ "photo": "https://is0.4sqi.net/userpix_thumbs/MWFXW1DBV1SRHJND.jpg",
1340
+ "tips": {
1341
+ "count": 3
1342
+ },
1343
+ "gender": "male",
1344
+ "homeCity": "NY",
1345
+ "bio": "",
1346
+ "contact": {
1347
+ "facebook": "205104495"
1348
+ }
1349
+ }
1350
+ ]
1351
+ }
1352
+ ],
1353
+ "summary": "Steven M, Lesly, Bobby K & 3 others"
1354
+ },
1355
+ "like": false,
1356
+ "menu": {
1357
+ "type": "foodAndBeverage",
1358
+ "url": "https://foursquare.com/v/tortilleria-mexicana-tres-hermanos/4a21c1caf964a520397d1fe3/menu",
1359
+ "mobileUrl": "https://foursquare.com/v/4a21c1caf964a520397d1fe3/device_menu"
1360
+ },
1361
+ "beenHere": {
1362
+ "count": 0,
1363
+ "marked": false
1364
+ },
1365
+ "specials": {
1366
+ "count": 0,
1367
+ "items": []
1368
+ }
1369
+ },
1370
+ "listed": {
1371
+ "count": 0,
1372
+ "items": []
1373
+ }
1374
+ }
1375
+ ]
1376
+ }
1377
+ }
1378
+ }
1379
+ }