instagram 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.md +1 -1
- data/README.md +1 -1
- data/instagram.gemspec +1 -1
- data/lib/instagram/client.rb +1 -0
- data/lib/instagram/client/geographies.rb +29 -0
- data/lib/instagram/client/locations.rb +3 -3
- data/lib/instagram/client/media.rb +1 -1
- data/lib/instagram/client/subscriptions.rb +5 -4
- data/lib/instagram/client/tags.rb +2 -2
- data/lib/instagram/client/users.rb +132 -7
- data/lib/instagram/version.rb +1 -1
- data/spec/fixtures/approve_user.json +8 -0
- data/spec/fixtures/block_user.json +8 -0
- data/spec/fixtures/deny_user.json +8 -0
- data/spec/fixtures/follow_user.json +8 -0
- data/spec/fixtures/geography_recent_media.json +1 -0
- data/spec/fixtures/relationship.json +9 -0
- data/spec/fixtures/unblock_user.json +8 -0
- data/spec/fixtures/unfollow_user.json +8 -0
- data/spec/instagram/client/geography_spec.rb +37 -0
- data/spec/instagram/client/users_spec.rb +147 -0
- metadata +54 -37
- data/lib/instagram/client/real_time.rb +0 -8
- data/spec/instagram/client/real_time_spec.rb +0 -13
data/LICENSE.md
CHANGED
data/README.md
CHANGED
data/instagram.gemspec
CHANGED
@@ -9,11 +9,11 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.add_development_dependency('simplecov', '~> 0.3')
|
10
10
|
s.add_development_dependency('webmock', '~> 1.6')
|
11
11
|
s.add_development_dependency('ZenTest', '~> 4.4')
|
12
|
+
s.add_development_dependency('bluecloth', '~> 2.0.11')
|
12
13
|
s.add_runtime_dependency('faraday', '~> 0.5.4')
|
13
14
|
s.add_runtime_dependency('faraday_middleware', '~> 0.3.1')
|
14
15
|
s.add_runtime_dependency('multi_json', '~> 0.0.5')
|
15
16
|
s.add_runtime_dependency('hashie', '~> 1.0.0')
|
16
|
-
s.add_runtime_dependency('ruby-hmac', '~> 0.4.0')
|
17
17
|
s.authors = ["Shayne Sweeney"]
|
18
18
|
s.description = %q{A Ruby wrapper for the Instagram REST and Search APIs}
|
19
19
|
s.post_install_message =<<eos
|
data/lib/instagram/client.rb
CHANGED
@@ -11,6 +11,7 @@ module Instagram
|
|
11
11
|
include Instagram::Client::Users
|
12
12
|
include Instagram::Client::Media
|
13
13
|
include Instagram::Client::Locations
|
14
|
+
include Instagram::Client::Geographies
|
14
15
|
include Instagram::Client::Tags
|
15
16
|
include Instagram::Client::Comments
|
16
17
|
include Instagram::Client::Likes
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Instagram
|
2
|
+
class Client
|
3
|
+
# Defines methods related to real-time geographies
|
4
|
+
module Geographies
|
5
|
+
# Returns a list of recent media items for a given real-time geography
|
6
|
+
#
|
7
|
+
# @overload geography_recent_media(id, options={})
|
8
|
+
# @param user [Integer] A geography ID from a real-time subscription.
|
9
|
+
# @param options [Hash] A customizable set of options.
|
10
|
+
# @option options [Integer] :count (nil) Limit the number of results returned
|
11
|
+
# @option options [Integer] :min_id (nil) Return media before this min_id
|
12
|
+
# @option options [Integer] :max_id (nil) Return media after this max_id
|
13
|
+
# @option options [Integer] :min_timestamp (nil) Return media after this UNIX timestamp
|
14
|
+
# @option options [Integer] :max_timestamp (nil) Return media before this UNIX timestamp
|
15
|
+
# @return [Hashie::Mash]
|
16
|
+
# @example Return a list of the most recent media items taken within a specific geography
|
17
|
+
# Instagram.geography_recent_media(514276)
|
18
|
+
# @see http://instagram.com/developer/endpoints/geographies/
|
19
|
+
# @format :json
|
20
|
+
# @authenticated false
|
21
|
+
# @rate_limited true
|
22
|
+
def geography_recent_media(id, *args)
|
23
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
24
|
+
response = get("geographies/#{id}/media/recent", options)
|
25
|
+
response["data"]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -21,10 +21,10 @@ module Instagram
|
|
21
21
|
# Returns a list of recent media items for a given Instagram location
|
22
22
|
#
|
23
23
|
# @overload location_recent_media(id, options={})
|
24
|
-
# @param user [Integer] An Instagram
|
24
|
+
# @param user [Integer] An Instagram location ID.
|
25
25
|
# @param options [Hash] A customizable set of options.
|
26
26
|
# @option options [Integer] :max_id (nil) Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
27
|
-
# @option options [Integer] :count (nil) Limits the number of results returned per page
|
27
|
+
# @option options [Integer] :count (nil) Limits the number of results returned per page.
|
28
28
|
# @return [Hashie::Mash]
|
29
29
|
# @example Return a list of the most recent media items taken at the Instagram office
|
30
30
|
# Instagram.location_recent_media(514276)
|
@@ -42,7 +42,7 @@ module Instagram
|
|
42
42
|
#
|
43
43
|
# @param lat [String] A given latitude in decimal format
|
44
44
|
# @param lng [String] A given longitude in decimal format
|
45
|
-
# @option options [Integer] :count The number of media items to retrieve.
|
45
|
+
# @option options [Integer] :count The number of media items to retrieve.
|
46
46
|
# @return [Array]
|
47
47
|
# @example Return locations around 37.7808851, -122.3948632 (164 S Park, SF, CA USA)
|
48
48
|
# Instagram.location_search("37.7808851", "-122.3948632")
|
@@ -46,7 +46,7 @@ module Instagram
|
|
46
46
|
# @param lat [String] A given latitude in decimal format
|
47
47
|
# @param lng [String] A given longitude in decimal format
|
48
48
|
# @param options [Hash] A customizable set of options.
|
49
|
-
# @option options [Integer] :count The number of media items to retrieve.
|
49
|
+
# @option options [Integer] :count The number of media items to retrieve.
|
50
50
|
# @return [Array]
|
51
51
|
# @example Return media around 37.7808851, -122.3948632 (164 S Park, SF, CA USA)
|
52
52
|
# Instagram.media_search("37.7808851", "-122.3948632")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'openssl'
|
2
2
|
|
3
3
|
module Instagram
|
4
4
|
class Client
|
@@ -31,7 +31,7 @@ module Instagram
|
|
31
31
|
# @option options [String, Integer] :object_id When specifying a location or tag use the location's ID or tag name respectively
|
32
32
|
# @option options [String, Float] :lat The center latitude of an area, used when subscribing to a geography object
|
33
33
|
# @option options [String, Float] :lng The center longitude of an area, used when subscribing to a geography object
|
34
|
-
# @option options [String, Integer] :radius The distance in meters you'd like to capture around a given point
|
34
|
+
# @option options [String, Integer] :radius The distance in meters you'd like to capture around a given point
|
35
35
|
# @overload create_subscription(object, callback_url, aspect="media", options={})
|
36
36
|
# @param object [String] The object you'd like to subscribe to (user, tag, location or geography)
|
37
37
|
# @param callback_url [String] The subscription callback URL
|
@@ -40,7 +40,7 @@ module Instagram
|
|
40
40
|
# @option options [String, Integer] :object_id When specifying a location or tag use the location's ID or tag name respectively
|
41
41
|
# @option options [String, Float] :lat The center latitude of an area, used when subscribing to a geography object
|
42
42
|
# @option options [String, Float] :lng The center longitude of an area, used when subscribing to a geography object
|
43
|
-
# @option options [String, Integer] :radius The distance in meters you'd like to capture around a given point
|
43
|
+
# @option options [String, Integer] :radius The distance in meters you'd like to capture around a given point
|
44
44
|
#
|
45
45
|
# Note that we only support "media" at this time, but we might support other types of subscriptions in the future.
|
46
46
|
# @return [Hashie::Mash] The subscription created.
|
@@ -127,7 +127,8 @@ module Instagram
|
|
127
127
|
if !client_secret
|
128
128
|
raise ArgumentError, "client_secret must be set during configure"
|
129
129
|
end
|
130
|
-
|
130
|
+
digest = OpenSSL::Digest::Digest.new('sha1')
|
131
|
+
verify_signature = OpenSSL::HMAC.hexdigest(digest, client_secret, json)
|
131
132
|
|
132
133
|
if options[:signature] != verify_signature
|
133
134
|
raise Instagram::InvalidSignature, "invalid X-Hub-Signature does not match verify signature against client_secret"
|
@@ -24,7 +24,7 @@ module Instagram
|
|
24
24
|
# @param user [String] An Instagram tag name.
|
25
25
|
# @param options [Hash] A customizable set of options.
|
26
26
|
# @option options [Integer] :max_id (nil) Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
27
|
-
# @option options [Integer] :count (nil) Limits the number of results returned per page
|
27
|
+
# @option options [Integer] :count (nil) Limits the number of results returned per page.
|
28
28
|
# @return [Hashie::Mash]
|
29
29
|
# @example Return a list of the most recent media items tagged "cat"
|
30
30
|
# Instagram.tag_recent_media('cat')
|
@@ -45,7 +45,7 @@ module Instagram
|
|
45
45
|
# @rate_limited true
|
46
46
|
# @param query [String] The beginning or complete tag name to search for
|
47
47
|
# @param options [Hash] A customizable set of options.
|
48
|
-
# @option options [Integer] :count The number of media items to retrieve.
|
48
|
+
# @option options [Integer] :count The number of media items to retrieve.
|
49
49
|
# @return [Array]
|
50
50
|
# @see TODO:doc url
|
51
51
|
# @example Return tags that start with "cat"
|
@@ -28,7 +28,7 @@ module Instagram
|
|
28
28
|
# @rate_limited true
|
29
29
|
# @param query [String] The search query to run against user search.
|
30
30
|
# @param options [Hash] A customizable set of options.
|
31
|
-
# @option options [Integer] :count The number of users to retrieve.
|
31
|
+
# @option options [Integer] :count The number of users to retrieve.
|
32
32
|
# @return [Array]
|
33
33
|
# @see TODO:doc url
|
34
34
|
# @example Return users that match "Shayne Sweeney"
|
@@ -49,7 +49,7 @@ module Instagram
|
|
49
49
|
# @param user [Integer] An Instagram user ID.
|
50
50
|
# @param options [Hash] A customizable set of options.
|
51
51
|
# @option options [Integer] :cursor (nil) Breaks the results into pages. Provide values as returned in the response objects's next_cursor attribute to page forward in the list.
|
52
|
-
# @option options [Integer] :count (nil) Limits the number of results returned per page
|
52
|
+
# @option options [Integer] :count (nil) Limits the number of results returned per page.
|
53
53
|
# @return [Hashie::Mash]
|
54
54
|
# @example Return a list of users @mikeyk follows
|
55
55
|
# Instagram.user_follows(4) # @mikeyk user ID being 4
|
@@ -78,7 +78,7 @@ module Instagram
|
|
78
78
|
# @param user [Integer] An Instagram user ID.
|
79
79
|
# @param options [Hash] A customizable set of options.
|
80
80
|
# @option options [Integer] :cursor (nil) Breaks the results into pages. Provide values as returned in the response objects's next_cursor attribute to page forward in the list.
|
81
|
-
# @option options [Integer] :count (nil) Limits the number of results returned per page
|
81
|
+
# @option options [Integer] :count (nil) Limits the number of results returned per page.
|
82
82
|
# @return [Hashie::Mash]
|
83
83
|
# @example Return a list of users @mikeyk is followed by
|
84
84
|
# Instagram.user_followed_by(4) # @mikeyk user ID being 4
|
@@ -115,14 +115,14 @@ module Instagram
|
|
115
115
|
response["data"]
|
116
116
|
end
|
117
117
|
|
118
|
-
# Returns
|
118
|
+
# Returns most recent media items from the currently authorized user's feed.
|
119
119
|
#
|
120
120
|
# @overload user_media_feed(options={})
|
121
121
|
# @param options [Hash] A customizable set of options.
|
122
122
|
# @option options [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
123
|
-
# @option
|
123
|
+
# @option optionsc [Integer] :count Specifies the number of records to retrieve, per page.
|
124
124
|
# @return [Array]
|
125
|
-
# @example Return
|
125
|
+
# @example Return most recent media images that would appear on @shayne's feed
|
126
126
|
# Instagram.user_media_feed() # assuming @shayne is the authorized user
|
127
127
|
# @format :json
|
128
128
|
# @authenticated true
|
@@ -145,7 +145,7 @@ module Instagram
|
|
145
145
|
# @param user [Integer] An Instagram user ID.
|
146
146
|
# @param options [Hash] A customizable set of options.
|
147
147
|
# @option options [Integer] :max_id (nil) Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
148
|
-
# @option options [Integer] :count (nil) Limits the number of results returned per page
|
148
|
+
# @option options [Integer] :count (nil) Limits the number of results returned per page.
|
149
149
|
# @return [Hashie::Mash]
|
150
150
|
# @example Return a list of media items taken by @mikeyk
|
151
151
|
# Instagram.user_recent_media(4) # @mikeyk user ID being 4
|
@@ -161,5 +161,130 @@ module Instagram
|
|
161
161
|
response = get("users/#{id}/media/recent", options)
|
162
162
|
response["data"]
|
163
163
|
end
|
164
|
+
|
165
|
+
# Returns information about the current user's relationship (follow/following/etc) to another user
|
166
|
+
#
|
167
|
+
# @overload user_relationship(id, options={})
|
168
|
+
# @param user [Integer] An Instagram user ID.
|
169
|
+
# @param options [Hash] An optional options hash
|
170
|
+
# @return [Hashie::Mash]
|
171
|
+
# @example Return the relationship status between the currently authenticated user and @mikeyk
|
172
|
+
# Instagram.user_relationship(4) # @mikeyk user ID being 4
|
173
|
+
# @see http://instagram.com/developer/endpoints/relationships/
|
174
|
+
# @format :json
|
175
|
+
# @authenticated true
|
176
|
+
# @rate_limited true
|
177
|
+
def user_relationship(id, options={})
|
178
|
+
response = get("users/#{id}/relationship", options)
|
179
|
+
response["data"]
|
180
|
+
end
|
181
|
+
|
182
|
+
# Create a follows relationship between the current user and the target user
|
183
|
+
#
|
184
|
+
# @overload follow_user(id, options={})
|
185
|
+
# @param user [Integer] An Instagram user ID.
|
186
|
+
# @param options [Hash] An optional options hash
|
187
|
+
# @return [Hashie::Mash]
|
188
|
+
# @example Request the current user to follow the target user
|
189
|
+
# Instagram.follow_user(4)
|
190
|
+
# @see http://instagram.com/developer/endpoints/relationships/
|
191
|
+
# @format :json
|
192
|
+
# @authenticated true
|
193
|
+
# @rate_limited true
|
194
|
+
def follow_user(id, options={})
|
195
|
+
options["action"] = "follow"
|
196
|
+
response = post("users/#{id}/relationship", options)
|
197
|
+
response["data"]
|
198
|
+
end
|
199
|
+
|
200
|
+
# Destroy a follows relationship between the current user and the target user
|
201
|
+
#
|
202
|
+
# @overload unfollow_user(id, options={})
|
203
|
+
# @param user [Integer] An Instagram user ID.
|
204
|
+
# @param options [Hash] An optional options hash
|
205
|
+
# @return [Hashie::Mash]
|
206
|
+
# @example Remove a follows relationship between the current user and the target user
|
207
|
+
# Instagram.unfollow_user(4)
|
208
|
+
# @see http://instagram.com/developer/endpoints/relationships/
|
209
|
+
# @format :json
|
210
|
+
# @authenticated true
|
211
|
+
# @rate_limited true
|
212
|
+
def unfollow_user(id, options={})
|
213
|
+
options["action"] = "unfollow"
|
214
|
+
response = post("users/#{id}/relationship", options)
|
215
|
+
response["data"]
|
216
|
+
end
|
217
|
+
|
218
|
+
# Block a relationship between the current user and the target user
|
219
|
+
#
|
220
|
+
# @overload unfollow_user(id, options={})
|
221
|
+
# @param user [Integer] An Instagram user ID.
|
222
|
+
# @param options [Hash] An optional options hash
|
223
|
+
# @return [Hashie::Mash]
|
224
|
+
# @example Block a relationship between the current user and the target user
|
225
|
+
# Instagram.block_user(4)
|
226
|
+
# @see http://instagram.com/developer/endpoints/relationships/
|
227
|
+
# @format :json
|
228
|
+
# @authenticated true
|
229
|
+
# @rate_limited true
|
230
|
+
def block_user(id, options={})
|
231
|
+
options["action"] = "block"
|
232
|
+
response = post("users/#{id}/relationship", options)
|
233
|
+
response["data"]
|
234
|
+
end
|
235
|
+
|
236
|
+
# Remove a relationship block between the current user and the target user
|
237
|
+
#
|
238
|
+
# @overload unblock_user(id, options={})
|
239
|
+
# @param user [Integer] An Instagram user ID.
|
240
|
+
# @param options [Hash] An optional options hash
|
241
|
+
# @return [Hashie::Mash]
|
242
|
+
# @example Remove a relationship block between the current user and the target user
|
243
|
+
# Instagram.unblock_user(4)
|
244
|
+
# @see http://instagram.com/developer/endpoints/relationships/
|
245
|
+
# @format :json
|
246
|
+
# @authenticated true
|
247
|
+
# @rate_limited true
|
248
|
+
def unblock_user(id, options={})
|
249
|
+
options["action"] = "unblock"
|
250
|
+
response = post("users/#{id}/relationship", options)
|
251
|
+
response["data"]
|
252
|
+
end
|
253
|
+
|
254
|
+
# Approve a relationship request between the current user and the target user
|
255
|
+
#
|
256
|
+
# @overload approve_user(id, options={})
|
257
|
+
# @param user [Integer] An Instagram user ID.
|
258
|
+
# @param options [Hash] An optional options hash
|
259
|
+
# @return [Hashie::Mash]
|
260
|
+
# @example Approve a relationship request between the current user and the target user
|
261
|
+
# Instagram.approve_user(4)
|
262
|
+
# @see http://instagram.com/developer/endpoints/relationships/
|
263
|
+
# @format :json
|
264
|
+
# @authenticated true
|
265
|
+
# @rate_limited true
|
266
|
+
def approve_user(id, options={})
|
267
|
+
options["action"] = "approve"
|
268
|
+
response = post("users/#{id}/relationship", options)
|
269
|
+
response["data"]
|
270
|
+
end
|
271
|
+
|
272
|
+
# Deny a relationship request between the current user and the target user
|
273
|
+
#
|
274
|
+
# @overload deny_user(id, options={})
|
275
|
+
# @param user [Integer] An Instagram user ID.
|
276
|
+
# @param options [Hash] An optional options hash
|
277
|
+
# @return [Hashie::Mash]
|
278
|
+
# @example Deny a relationship request between the current user and the target user
|
279
|
+
# Instagram.deny_user(4)
|
280
|
+
# @see http://instagram.com/developer/endpoints/relationships/
|
281
|
+
# @format :json
|
282
|
+
# @authenticated true
|
283
|
+
# @rate_limited true
|
284
|
+
def deny_user(id, options={})
|
285
|
+
options["action"] = "deny"
|
286
|
+
response = post("users/#{id}/relationship", options)
|
287
|
+
response["data"]
|
288
|
+
end
|
164
289
|
end
|
165
290
|
end
|
data/lib/instagram/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"pagination": {"next_url": "http://api_privatebeta.instagr.am/api/v2/tags/cat/media/recent/?access_token=f59def8.001cde77128843169627c0308237bafa&max_id=13289272", "next_max_id": 13289272}, "meta": {"code": 200}, "data": [{"type": "image", "comments": [{"created_time": "2010-12-18T02:34:05+0000", "message": "Our new cat with Christian and his grandma. ", "from": {"username": "amandavan", "id": "443107"}, "id": "10124500"}, {"created_time": "2010-12-18T02:37:16+0000", "message": "Gorgeous shot. Loving each others company!", "from": {"username": "ajinnz", "id": "520533"}, "id": "10125060"}, {"created_time": "2010-12-18T03:16:05+0000", "message": "We rescued the cat from a shelter. It only had a few more days left to find a home. He is an adult cat that is very friendly.", "from": {"username": "amandavan", "id": "443107"}, "id": "10131737"}, {"created_time": "2010-12-18T03:23:16+0000", "message": "Sweet:)", "from": {"username": "attosa", "id": "499019"}, "id": "10133068"}, {"created_time": "2010-12-18T03:29:20+0000", "message": "素敵な時間!", "from": {"username": "naot", "id": "119160"}, "id": "10134162"}, {"created_time": "2010-12-18T03:31:14+0000", "message": "Sweet♥", "from": {"username": "paddington", "id": "297689"}, "id": "10134507"}, {"created_time": "2010-12-18T03:33:22+0000", "message": "Beautiful", "from": {"username": "blueclue", "id": "199292"}, "id": "10134879"}, {"created_time": "2010-12-18T04:05:29+0000", "message": "Made popular :) Congrats!", "from": {"username": "brevynsmommy", "id": "919940"}, "id": "10140543"}, {"created_time": "2010-12-18T04:20:58+0000", "message": "(=´∀`)人(´∀`=)", "from": {"username": "mayugonz", "id": "660351"}, "id": "10143131"}, {"created_time": "2010-12-18T04:37:39+0000", "message": "so sweet", "from": {"username": "chaolee", "id": "458637"}, "id": "10145908"}, {"created_time": "2010-12-18T05:43:19+0000", "message": "nice capture!", "from": {"username": "manorr", "id": "352000"}, "id": "10157195"}, {"created_time": "2010-12-18T07:33:43+0000", "message": "Lovely shot.", "from": {"username": "kidtechnical", "id": "981990"}, "id": "10175334"}, {"created_time": "2010-12-18T11:53:04+0000", "message": "So beauty-ful!", "from": {"username": "rss420", "id": "350879"}, "id": "10219843"}, {"created_time": "2010-12-19T03:44:45+0000", "message": "d(^_^o)", "from": {"username": "dhodhadhi", "id": "142482"}, "id": "10384408"}, {"created_time": "2010-12-19T22:09:12+0000", "message": "Aaaaww", "from": {"username": "brianng", "id": "10102"}, "id": "10595111"}, {"created_time": "2010-12-20T02:32:51+0000", "message": "Precious!", "from": {"username": "natalyj08", "id": "462833"}, "id": "10645980"}, {"created_time": "2010-12-20T07:56:15+0000", "message": "Luv it", "from": {"username": "indoazz", "id": "842666"}, "id": "10697595"}, {"created_time": "2010-12-23T07:33:46+0000", "message": "Lovely shot", "from": {"username": "gershwin", "id": "312872"}, "id": "11452636"}, {"created_time": "2011-02-02T01:20:05+0000", "message": "#love #cat", "from": {"username": "amandavan", "id": "443107"}, "id": "26229449"}], "caption": {"created_time": "2010-12-18T02:34:05+0000", "message": "Our new cat with Christian and his grandma. ", "from": {"username": "amandavan", "id": "443107"}, "id": "10124500"}, "like_count": 90, "link": "http://api_privatebeta.instagr.am/p/mQHc/", "user": {"username": "amandavan", "full_name": "", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_443107_75sq_1288981444.jpg", "id": "443107"}, "created_time": "2010-12-18T02:33:22+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/17/08752d7e680a44abb36495f8cf3f09f1_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/17/08752d7e680a44abb36495f8cf3f09f1_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/17/08752d7e680a44abb36495f8cf3f09f1_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "10027484", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T01:19:26+0000", "message": "お傾げ#cat", "from": {"username": "tenkao", "id": "114517"}, "id": "26229234"}], "caption": {"created_time": "2011-02-02T01:19:26+0000", "message": "お傾げ#cat", "from": {"username": "tenkao", "id": "114517"}, "id": "26229234"}, "like_count": 0, "link": "http://api_privatebeta.instagr.am/p/BVpbC/", "user": {"username": "tenkao", "full_name": "Tsutomu Hagiwara", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_114517_75sq_1287300118.jpg", "id": "114517"}, "created_time": "2011-02-02T01:18:39+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/67babf0994bd41f48717455a1ed645bf_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/67babf0994bd41f48717455a1ed645bf_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/67babf0994bd41f48717455a1ed645bf_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "22451906", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T01:09:46+0000", "message": "Even cats blink in pictures. ", "from": {"username": "dmarkey", "id": "496759"}, "id": "26226075"}, {"created_time": "2011-02-02T01:16:40+0000", "message": "#cat", "from": {"username": "dmarkey", "id": "496759"}, "id": "26228267"}], "caption": {"created_time": "2011-02-02T01:09:46+0000", "message": "Even cats blink in pictures. ", "from": {"username": "dmarkey", "id": "496759"}, "id": "26226075"}, "like_count": 0, "link": "http://api_privatebeta.instagr.am/p/BVo8g/", "user": {"username": "dmarkey", "full_name": "Drew Markey", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_496759_75sq_1296534082.jpg", "id": "496759"}, "created_time": "2011-02-02T01:09:10+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/540c61429dba4ef198e99d91e0cefcca_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/540c61429dba4ef198e99d91e0cefcca_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/540c61429dba4ef198e99d91e0cefcca_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "22449952", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T01:15:56+0000", "message": "Ursula the black. #dslr #nofilter", "from": {"username": "ciams", "id": "339307"}, "id": "26228009"}, {"created_time": "2011-02-02T01:16:21+0000", "message": "And #cat. ", "from": {"username": "ciams", "id": "339307"}, "id": "26228151"}], "caption": {"created_time": "2011-02-02T01:15:56+0000", "message": "Ursula the black. #dslr #nofilter", "from": {"username": "ciams", "id": "339307"}, "id": "26228009"}, "like_count": 0, "link": "http://api_privatebeta.instagr.am/p/BVpQR/", "user": {"username": "ciams", "full_name": "Ciam", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_339307_75sq_1295055035.jpg", "id": "339307"}, "created_time": "2011-02-02T01:15:26+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/583d4598747f4d44949dfb9a7bb66c34_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/583d4598747f4d44949dfb9a7bb66c34_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/583d4598747f4d44949dfb9a7bb66c34_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "22451217", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T01:15:06+0000", "message": "ガラス越しのあなた #cat", "from": {"username": "sorateto", "id": "1407213"}, "id": "26227746"}], "caption": {"created_time": "2011-02-02T01:15:06+0000", "message": "ガラス越しのあなた #cat", "from": {"username": "sorateto", "id": "1407213"}, "id": "26227746"}, "like_count": 0, "link": "http://api_privatebeta.instagr.am/p/BVpNO/", "user": {"username": "sorateto", "full_name": "", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1407213_75sq_1295171266.jpg", "id": "1407213"}, "created_time": "2011-02-02T01:14:26+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/02b1810dfd744e1186e9d1c4c48d2e79_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/02b1810dfd744e1186e9d1c4c48d2e79_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/02b1810dfd744e1186e9d1c4c48d2e79_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "22451022", "location": null}, {"type": "image", "comments": [{"created_time": "2011-01-27T17:48:00+0000", "message": "Midnight", "from": {"username": "samnands", "id": "1572362"}, "id": "23619719"}, {"created_time": "2011-02-02T01:03:12+0000", "message": "#midnight #cat #kitty #pet #animal #eyes", "from": {"username": "samnands", "id": "1572362"}, "id": "26223766"}], "caption": {"created_time": "2011-01-27T17:48:00+0000", "message": "Midnight", "from": {"username": "samnands", "id": "1572362"}, "id": "23619719"}, "like_count": 3, "link": "http://api_privatebeta.instagr.am/p/BPG_g/", "user": {"username": "samnands", "full_name": "Sam Fernandes", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1572362_75sq_1296598905.jpg", "id": "1572362"}, "created_time": "2011-01-27T17:47:58+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/27/d7056b7a0b094eb1bf8bcd27dcebef00_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/27/d7056b7a0b094eb1bf8bcd27dcebef00_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/27/d7056b7a0b094eb1bf8bcd27dcebef00_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "20738016", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T01:00:08+0000", "message": "#sleep #cat", "from": {"username": "super_mimi_", "id": "1721424"}, "id": "26222773"}], "caption": null, "like_count": 1, "link": "http://api_privatebeta.instagr.am/p/BR_R3/", "user": {"username": "super_mimi_", "full_name": "Mimi ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1721424_75sq_1296492509.jpg", "id": "1721424"}, "created_time": "2011-01-30T00:16:02+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/29/bf7b4dd6aacd48be8ae74076c80d8752_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/29/bf7b4dd6aacd48be8ae74076c80d8752_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/29/bf7b4dd6aacd48be8ae74076c80d8752_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "21492855", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-29T02:52:01+0000", "message": "Beautiful lil friend!!", "from": {"username": "tashiko", "id": "889932"}, "id": "13086996"}, {"created_time": "2010-12-29T03:47:38+0000", "message": "I'm not a fan of cats, still like this shot a lot.", "from": {"username": "cryingjune", "id": "678148"}, "id": "13099247"}, {"created_time": "2010-12-29T10:15:32+0000", "message": "@cryingjune awww thanks heaps! ", "from": {"username": "tashiko", "id": "889932"}, "id": "13175014"}, {"created_time": "2011-02-02T00:43:33+0000", "message": "#Tashiko #cat #light #eye", "from": {"username": "tashiko", "id": "889932"}, "id": "26217211"}], "caption": {"created_time": "2010-12-29T02:52:01+0000", "message": "Beautiful lil friend!!", "from": {"username": "tashiko", "id": "889932"}, "id": "13086996"}, "like_count": 4, "link": "http://api_privatebeta.instagr.am/p/wUN_/", "user": {"username": "tashiko", "full_name": "", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_889932_75sq_1291277200.jpg", "id": "889932"}, "created_time": "2010-12-29T02:51:53+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/28/b8ff036f071c4ac4b8a66bea459eebf6_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/28/b8ff036f071c4ac4b8a66bea459eebf6_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/28/b8ff036f071c4ac4b8a66bea459eebf6_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "12665727", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T00:43:07+0000", "message": "#cat 's #eyes , #cateyes", "from": {"username": "camilletwentyseven", "id": "983122"}, "id": "26217085"}, {"created_time": "2011-02-02T01:19:29+0000", "message": "The Cats Eye! ;)", "from": {"username": "andy_warhol", "id": "1540858"}, "id": "26229252"}], "caption": {"created_time": "2011-02-02T00:43:07+0000", "message": "#cat 's #eyes , #cateyes", "from": {"username": "camilletwentyseven", "id": "983122"}, "id": "26217085"}, "like_count": 5, "link": "http://api_privatebeta.instagr.am/p/BVnlX/", "user": {"username": "camilletwentyseven", "full_name": "Camille ~ ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_983122_75sq_1296348573.jpg", "id": "983122"}, "created_time": "2011-02-02T00:42:50+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/1d7e99a9ae5145aabd68ffdeaa771698_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/1d7e99a9ae5145aabd68ffdeaa771698_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/1d7e99a9ae5145aabd68ffdeaa771698_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "22444375", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-29T02:55:11+0000", "message": "", "from": {"username": "tashiko", "id": "889932"}, "id": "13087621"}, {"created_time": "2011-01-04T02:42:26+0000", "message": "So lovely!", "from": {"username": "taki17", "id": "411305"}, "id": "14977647"}, {"created_time": "2011-01-04T02:53:39+0000", "message": "@taki17 - I thought u might like these kitties!! ", "from": {"username": "tashiko", "id": "889932"}, "id": "14980241"}, {"created_time": "2011-01-04T03:06:08+0000", "message": "Ya I love it so much!", "from": {"username": "taki17", "id": "411305"}, "id": "14983160"}, {"created_time": "2011-02-02T00:42:18+0000", "message": "#Tashiko #cat #kitten", "from": {"username": "tashiko", "id": "889932"}, "id": "26216824"}], "caption": {"created_time": "2010-12-29T02:55:11+0000", "message": "", "from": {"username": "tashiko", "id": "889932"}, "id": "13087621"}, "like_count": 2, "link": "http://api_privatebeta.instagr.am/p/wUWU/", "user": {"username": "tashiko", "full_name": "", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_889932_75sq_1291277200.jpg", "id": "889932"}, "created_time": "2010-12-29T02:55:09+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/28/be01cefa28ee41b0beda68d4c249d514_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/28/be01cefa28ee41b0beda68d4c249d514_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/28/be01cefa28ee41b0beda68d4c249d514_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "12666260", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T00:33:51+0000", "message": "おはようございます(^_^)優雅なお目覚め、メイさんです♡", "from": {"username": "ayachimaru", "id": "1568922"}, "id": "26214037"}, {"created_time": "2011-02-02T00:34:16+0000", "message": "#cat", "from": {"username": "ayachimaru", "id": "1568922"}, "id": "26214171"}, {"created_time": "2011-02-02T00:39:32+0000", "message": "おはようございます( ´ ▽ ` )ノ 美人さんですね", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26215878"}], "caption": {"created_time": "2011-02-02T00:33:51+0000", "message": "おはようございます(^_^)優雅なお目覚め、メイさんです♡", "from": {"username": "ayachimaru", "id": "1568922"}, "id": "26214037"}, "like_count": 1, "link": "http://api_privatebeta.instagr.am/p/BVnHI/", "user": {"username": "ayachimaru", "full_name": "", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1568922_75sq_1296342395.jpg", "id": "1568922"}, "created_time": "2011-02-02T00:33:10+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/8391c99328b04265b231065033dda4c7_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/8391c99328b04265b231065033dda4c7_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/02/01/8391c99328b04265b231065033dda4c7_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "22442440", "location": null}, {"type": "image", "comments": [{"created_time": "2011-01-20T12:00:25+0000", "message": "にゃーこも黄昏るんだよ。なら、わしら人間も黄昏れようよ。そんな急かせかしないでさ。", "from": {"username": "break08mia", "id": "212679"}, "id": "20755823"}, {"created_time": "2011-01-20T12:12:26+0000", "message": "のんびりニャー", "from": {"username": "inahoo", "id": "845707"}, "id": "20759132"}, {"created_time": "2011-01-20T12:15:36+0000", "message": "ほんとだ! 自分の時間って必要だよね。", "from": {"username": "genzo", "id": "231388"}, "id": "20760033"}, {"created_time": "2011-01-20T12:27:26+0000", "message": "今まさに黄昏てるよ。( ̄。 ̄*)ボ----------", "from": {"username": "kame_chi", "id": "144925"}, "id": "20763443"}, {"created_time": "2011-01-20T12:34:40+0000", "message": "( ´ ▽ ` )ノ", "from": {"username": "cfumi_loveyou", "id": "787830"}, "id": "20765579"}, {"created_time": "2011-01-20T12:49:43+0000", "message": "+。:.゚(* ゚A ゚*):.。+゚ぽけー", "from": {"username": "kikuji", "id": "141620"}, "id": "20769901"}, {"created_time": "2011-01-20T13:05:31+0000", "message": "うんうん♥ゆっくりまったりね。", "from": {"username": "aoi3179", "id": "589625"}, "id": "20774611"}, {"created_time": "2011-01-20T14:32:11+0000", "message": "いい構図!黄昏てますね〜♬こんな時間って大事だよなぁ〜", "from": {"username": "ebapi", "id": "257364"}, "id": "20801658"}, {"created_time": "2011-01-20T15:21:21+0000", "message": "コンスタントに黄昏ます(。-_-。)", "from": {"username": "dai_suke", "id": "124496"}, "id": "20817536"}, {"created_time": "2011-01-20T15:50:03+0000", "message": "Kawaiiii ", "from": {"username": "yuriko211", "id": "182316"}, "id": "20826471"}, {"created_time": "2011-01-20T15:52:18+0000", "message": "いいね。その感じ♪( ´▽`)そうでありたいな~♪", "from": {"username": "eri1982", "id": "748613"}, "id": "20827141"}, {"created_time": "2011-01-20T16:17:44+0000", "message": "ごもっとも(笑)", "from": {"username": "jyonzo", "id": "167443"}, "id": "20834724"}, {"created_time": "2011-01-20T17:32:05+0000", "message": "♪(´ε` )", "from": {"username": "1100211", "id": "211271"}, "id": "20854833"}, {"created_time": "2011-01-21T10:17:30+0000", "message": "@inahoo だにゃあー♥花金だあー♥", "from": {"username": "break08mia", "id": "212679"}, "id": "21105445"}, {"created_time": "2011-01-21T10:18:03+0000", "message": "@genzo 時間を上手く使える人は大人だなあと思います!", "from": {"username": "break08mia", "id": "212679"}, "id": "21105569"}, {"created_time": "2011-01-21T10:18:33+0000", "message": "@kame_chi いいなw 私はこれから♥ひひひっ♥", "from": {"username": "break08mia", "id": "212679"}, "id": "21105678"}, {"created_time": "2011-01-21T10:18:59+0000", "message": "@cfumi_loveyou いいでしょ?(o^^o)", "from": {"username": "break08mia", "id": "212679"}, "id": "21105783"}, {"created_time": "2011-01-21T10:19:17+0000", "message": "@kikuji 君もかいw", "from": {"username": "break08mia", "id": "212679"}, "id": "21105851"}, {"created_time": "2011-01-21T10:20:10+0000", "message": "@aoi3179 私の人生の大半はゆっくりまったりwそれでもなお、にゃーこが羨ましい♥", "from": {"username": "break08mia", "id": "212679"}, "id": "21106040"}, {"created_time": "2011-01-21T10:21:19+0000", "message": "@ebapi そう見えますよね♥私も猫になったつもりで、本日のんびりさせていただきますw", "from": {"username": "break08mia", "id": "212679"}, "id": "21106290"}, {"created_time": "2011-01-21T10:21:55+0000", "message": "@dai_suke それ人生において、非常に大切なポイントだと思う!", "from": {"username": "break08mia", "id": "212679"}, "id": "21106439"}, {"created_time": "2011-01-21T10:22:38+0000", "message": "@yuriko211 にゃーこはいつも可愛くて羨ましいですね(´Д` )♥", "from": {"username": "break08mia", "id": "212679"}, "id": "21106597"}, {"created_time": "2011-01-21T10:23:56+0000", "message": "@eri1982 なかなか黄昏れる余裕ないもんねー。生きづらいわっw今度一緒に黄昏ようー♥", "from": {"username": "break08mia", "id": "212679"}, "id": "21106905"}, {"created_time": "2011-01-21T10:24:44+0000", "message": "@jyonzo そう思ってもらえて我輩うれしいにゃー♥", "from": {"username": "break08mia", "id": "212679"}, "id": "21107072"}, {"created_time": "2011-01-21T10:25:16+0000", "message": "@110211( *`ω´) ノ", "from": {"username": "break08mia", "id": "212679"}, "id": "21107188"}, {"created_time": "2011-01-23T01:38:33+0000", "message": "にゃーこと日向ぼっこもしたいにゃー(「ΦωΦ)♡", "from": {"username": "sakisugita", "id": "74513"}, "id": "21788864"}, {"created_time": "2011-01-23T03:12:49+0000", "message": "いい写真だな〜(^^)", "from": {"username": "respetar", "id": "237709"}, "id": "21818611"}, {"created_time": "2011-02-02T00:25:37+0000", "message": "#break08mia #cat", "from": {"username": "break08mia", "id": "212679"}, "id": "26211338"}], "caption": {"created_time": "2011-01-20T12:00:25+0000", "message": "にゃーこも黄昏るんだよ。なら、わしら人間も黄昏れようよ。そんな急かせかしないでさ。", "from": {"username": "break08mia", "id": "212679"}, "id": "20755823"}, "like_count": 77, "link": "http://api_privatebeta.instagr.am/p/BG82f/", "user": {"username": "break08mia", "full_name": "Tw:@ Mikan0range", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_212679_75sq_1288622923.jpg", "id": "212679"}, "created_time": "2011-01-20T11:58:58+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/20/e6fe0fb1ef944183a33f7862ef91cff1_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/20/e6fe0fb1ef944183a33f7862ef91cff1_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2011/01/20/e6fe0fb1ef944183a33f7862ef91cff1_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "18599327", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-19T13:43:36+0000", "message": "足が痺れた ㅠㅠ", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "10500494"}, {"created_time": "2010-12-25T22:53:07+0000", "message": "この眼差しがいいですね☆(^^)", "from": {"username": "mayugonz", "id": "660351"}, "id": "12212162"}, {"created_time": "2011-02-02T00:25:21+0000", "message": "#orangetabby #orangecat #cat\n#kanchan", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26211246"}], "caption": {"created_time": "2010-12-19T13:43:36+0000", "message": "足が痺れた ㅠㅠ", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "10500494"}, "like_count": 6, "link": "http://api_privatebeta.instagr.am/p/nklf/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-19T13:43:14+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/19/14620267e61e4fba8a49401f1257e7f3_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/19/14620267e61e4fba8a49401f1257e7f3_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/19/14620267e61e4fba8a49401f1257e7f3_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "10373471", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-26T06:21:07+0000", "message": "今日も なかよし", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "12300004"}, {"created_time": "2010-12-26T12:06:39+0000", "message": "いい子だねー♥(^▿^。)", "from": {"username": "2120sma", "id": "196066"}, "id": "12359152"}, {"created_time": "2011-02-02T00:24:43+0000", "message": "#orangetabby #orangecat #cat\n#kanchan #taejakun", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26211020"}], "caption": {"created_time": "2010-12-26T06:21:07+0000", "message": "今日も なかよし", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "12300004"}, "like_count": 7, "link": "http://api_privatebeta.instagr.am/p/toJt/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-26T06:20:51+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/64c1d4b0f8d64ef1a19903b56bef9b6a_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/64c1d4b0f8d64ef1a19903b56bef9b6a_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/64c1d4b0f8d64ef1a19903b56bef9b6a_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "11960941", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-26T06:24:00+0000", "message": "寒いねぇ 眠いねぇ", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "12300470"}, {"created_time": "2011-02-02T00:24:32+0000", "message": "#orangetabby #orangecat #cat\n#kanchan #taejakun", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26210962"}], "caption": {"created_time": "2010-12-26T06:24:00+0000", "message": "寒いねぇ 眠いねぇ", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "12300470"}, "like_count": 6, "link": "http://api_privatebeta.instagr.am/p/toRk/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-26T06:23:33+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/191f3b2c7aeb446da7e01d4c813ea849_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/191f3b2c7aeb446da7e01d4c813ea849_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/191f3b2c7aeb446da7e01d4c813ea849_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "11961444", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-26T06:34:09+0000", "message": "むにゃむにゃ", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "12302175"}, {"created_time": "2011-02-02T00:24:20+0000", "message": "#orangetabby #orangecat #cat\n#kanchan #taejakun", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26210893"}], "caption": {"created_time": "2010-12-26T06:34:09+0000", "message": "むにゃむにゃ", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "12302175"}, "like_count": 6, "link": "http://api_privatebeta.instagr.am/p/tove/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-26T06:34:07+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/8357d3db223e460ebe6c82f5c7f22083_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/8357d3db223e460ebe6c82f5c7f22083_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/25/8357d3db223e460ebe6c82f5c7f22083_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "11963358", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T00:24:08+0000", "message": "#orangetabby #orangecat #cat\n#kanchan", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26210825"}], "caption": null, "like_count": 5, "link": "http://api_privatebeta.instagr.am/p/xSRh/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-30T03:21:55+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/f2be14b699904f359585098035afda2a_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/f2be14b699904f359585098035afda2a_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/f2be14b699904f359585098035afda2a_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "12919905", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-30T03:22:46+0000", "message": "大掃除が終わりません", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "13389363"}, {"created_time": "2011-02-02T00:23:54+0000", "message": "#orangetabby #orangecat #cat\n#kanchan", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26210739"}], "caption": {"created_time": "2010-12-30T03:22:46+0000", "message": "大掃除が終わりません", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "13389363"}, "like_count": 7, "link": "http://api_privatebeta.instagr.am/p/xSTH/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-30T03:22:25+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/7ba3e40263444617a22510a1440e4768_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/7ba3e40263444617a22510a1440e4768_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/7ba3e40263444617a22510a1440e4768_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "12920007", "location": null}, {"type": "image", "comments": [{"created_time": "2010-12-30T03:34:23+0000", "message": "幸せそうv", "from": {"username": "usyako", "id": "300667"}, "id": "13391776"}, {"created_time": "2011-02-02T00:23:39+0000", "message": "#orangetabby #orangecat #cat\n#kanchan", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26210658"}], "caption": null, "like_count": 6, "link": "http://api_privatebeta.instagr.am/p/xSZe/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-30T03:24:41+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/330ddc6c02504318ab5097ae2b3c0788_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/330ddc6c02504318ab5097ae2b3c0788_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/29/330ddc6c02504318ab5097ae2b3c0788_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "12920414", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T00:23:25+0000", "message": "#orangetabby #orangecat #cat\n#kanchan #taejakun", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26210570"}], "caption": null, "like_count": 2, "link": "http://api_privatebeta.instagr.am/p/ysb4/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-31T12:22:46+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/31/4dd358aba2eb419b9bee64204af2e159_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/31/4dd358aba2eb419b9bee64204af2e159_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/31/4dd358aba2eb419b9bee64204af2e159_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "13289208", "location": null}, {"type": "image", "comments": [{"created_time": "2011-02-02T00:23:15+0000", "message": "#orangetabby #orangecat #cat\n#kanchan #taejakun", "from": {"username": "miyabiyaka", "id": "681498"}, "id": "26210504"}], "caption": null, "like_count": 5, "link": "http://api_privatebeta.instagr.am/p/ysc4/", "user": {"username": "miyabiyaka", "full_name": " Yuuka ", "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_681498_75sq_1295987698.jpg", "id": "681498"}, "created_time": "2010-12-31T12:23:01+0000", "images": {"low_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/31/2726981bc6f5471ca680447980e64bdc_6.jpg", "width": 480, "height": 480}, "thumbnail": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/31/2726981bc6f5471ca680447980e64bdc_5.jpg", "width": 150, "height": 150}, "high_resolution": {"url": "http://distillery.s3.amazonaws.com/media/2010/12/31/2726981bc6f5471ca680447980e64bdc_7.jpg", "width": 612, "height": 612}}, "user_has_liked": false, "id": "13289272", "location": null}]}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Instagram::Client do
|
4
|
+
Instagram::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Instagram::Client.new(:format => format, :client_id => 'CID', :client_secret => 'CS', :access_token => 'AT')
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
describe ".geography_recent_media" do
|
12
|
+
|
13
|
+
context "with geography ID passed" do
|
14
|
+
|
15
|
+
before do
|
16
|
+
stub_get("geographies/12345/media/recent.#{format}").
|
17
|
+
with(:query => {:access_token => @client.access_token}).
|
18
|
+
to_return(:body => fixture("geography_recent_media.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should get the correct resource" do
|
22
|
+
@client.geography_recent_media(12345)
|
23
|
+
a_get("geographies/12345/media/recent.#{format}").
|
24
|
+
with(:query => {:access_token => @client.access_token}).
|
25
|
+
should have_been_made
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return a list of recent media items within the specifed geography" do
|
29
|
+
recent_media = @client.geography_recent_media(12345)
|
30
|
+
recent_media.should be_a Array
|
31
|
+
recent_media.first.user.username.should == "amandavan"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -232,6 +232,153 @@ describe Instagram::Client do
|
|
232
232
|
users.first.username.should == "shayne"
|
233
233
|
end
|
234
234
|
end
|
235
|
+
|
236
|
+
describe ".user_relationship" do
|
237
|
+
|
238
|
+
before do
|
239
|
+
stub_get("users/4/relationship.#{format}").
|
240
|
+
with(:query => {:access_token => @client.access_token}).
|
241
|
+
to_return(:body => fixture("relationship.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should get the correct resource" do
|
245
|
+
@client.user_relationship(4)
|
246
|
+
a_get("users/4/relationship.#{format}").
|
247
|
+
with(:query => {:access_token => @client.access_token}).
|
248
|
+
should have_been_made
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should return a relationship status response" do
|
252
|
+
status = @client.user_relationship(4)
|
253
|
+
status.incoming_status.should == "requested_by"
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
describe ".follow_user" do
|
258
|
+
|
259
|
+
before do
|
260
|
+
stub_post("users/4/relationship.#{format}").
|
261
|
+
with(:body => {:action => "follow", :access_token => @client.access_token}).
|
262
|
+
to_return(:body => fixture("follow_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
263
|
+
end
|
264
|
+
|
265
|
+
it "should get the correct resource" do
|
266
|
+
@client.follow_user(4)
|
267
|
+
a_post("users/4/relationship.#{format}").
|
268
|
+
with(:body => {:action => "follow", :access_token => @client.access_token}).
|
269
|
+
should have_been_made
|
270
|
+
end
|
271
|
+
|
272
|
+
it "should return a relationship status response" do
|
273
|
+
status = @client.follow_user(4)
|
274
|
+
status.outgoing_status.should == "requested"
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
describe ".unfollow_user" do
|
279
|
+
|
280
|
+
before do
|
281
|
+
stub_post("users/4/relationship.#{format}").
|
282
|
+
with(:body => {:action => "unfollow", :access_token => @client.access_token}).
|
283
|
+
to_return(:body => fixture("unfollow_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
284
|
+
end
|
285
|
+
|
286
|
+
it "should get the correct resource" do
|
287
|
+
@client.unfollow_user(4)
|
288
|
+
a_post("users/4/relationship.#{format}").
|
289
|
+
with(:body => {:action => "unfollow", :access_token => @client.access_token}).
|
290
|
+
should have_been_made
|
291
|
+
end
|
292
|
+
|
293
|
+
it "should return a relationship status response" do
|
294
|
+
status = @client.unfollow_user(4)
|
295
|
+
status.outgoing_status.should == "none"
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
299
|
+
describe ".block_user" do
|
300
|
+
|
301
|
+
before do
|
302
|
+
stub_post("users/4/relationship.#{format}").
|
303
|
+
with(:body => {:action => "block", :access_token => @client.access_token}).
|
304
|
+
to_return(:body => fixture("block_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
305
|
+
end
|
306
|
+
|
307
|
+
it "should get the correct resource" do
|
308
|
+
@client.block_user(4)
|
309
|
+
a_post("users/4/relationship.#{format}").
|
310
|
+
with(:body => {:action => "block", :access_token => @client.access_token}).
|
311
|
+
should have_been_made
|
312
|
+
end
|
313
|
+
|
314
|
+
it "should return a relationship status response" do
|
315
|
+
status = @client.block_user(4)
|
316
|
+
status.outgoing_status.should == "none"
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
describe ".unblock_user" do
|
321
|
+
|
322
|
+
before do
|
323
|
+
stub_post("users/4/relationship.#{format}").
|
324
|
+
with(:body => {:action => "unblock", :access_token => @client.access_token}).
|
325
|
+
to_return(:body => fixture("unblock_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
326
|
+
end
|
327
|
+
|
328
|
+
it "should get the correct resource" do
|
329
|
+
@client.unblock_user(4)
|
330
|
+
a_post("users/4/relationship.#{format}").
|
331
|
+
with(:body => {:action => "unblock", :access_token => @client.access_token}).
|
332
|
+
should have_been_made
|
333
|
+
end
|
334
|
+
|
335
|
+
it "should return a relationship status response" do
|
336
|
+
status = @client.unblock_user(4)
|
337
|
+
status.outgoing_status.should == "none"
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
341
|
+
describe ".approve_user" do
|
342
|
+
|
343
|
+
before do
|
344
|
+
stub_post("users/4/relationship.#{format}").
|
345
|
+
with(:body => {:action => "approve", :access_token => @client.access_token}).
|
346
|
+
to_return(:body => fixture("approve_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
347
|
+
end
|
348
|
+
|
349
|
+
it "should get the correct resource" do
|
350
|
+
@client.approve_user(4)
|
351
|
+
a_post("users/4/relationship.#{format}").
|
352
|
+
with(:body => {:action => "approve", :access_token => @client.access_token}).
|
353
|
+
should have_been_made
|
354
|
+
end
|
355
|
+
|
356
|
+
it "should return a relationship status response" do
|
357
|
+
status = @client.approve_user(4)
|
358
|
+
status.outgoing_status.should == "follows"
|
359
|
+
end
|
360
|
+
end
|
361
|
+
|
362
|
+
describe ".deny_user" do
|
363
|
+
|
364
|
+
before do
|
365
|
+
stub_post("users/4/relationship.#{format}").
|
366
|
+
with(:body => {:action => "deny", :access_token => @client.access_token}).
|
367
|
+
to_return(:body => fixture("deny_user.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
|
368
|
+
end
|
369
|
+
|
370
|
+
it "should get the correct resource" do
|
371
|
+
@client.deny_user(4)
|
372
|
+
a_post("users/4/relationship.#{format}").
|
373
|
+
with(:body => {:action => "deny", :access_token => @client.access_token}).
|
374
|
+
should have_been_made
|
375
|
+
end
|
376
|
+
|
377
|
+
it "should return a relationship status response" do
|
378
|
+
status = @client.deny_user(4)
|
379
|
+
status.outgoing_status.should == "none"
|
380
|
+
end
|
381
|
+
end
|
235
382
|
end
|
236
383
|
end
|
237
384
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 6
|
8
|
-
-
|
9
|
-
version: 0.6.
|
8
|
+
- 2
|
9
|
+
version: 0.6.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Shayne Sweeney
|
@@ -14,12 +14,11 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-
|
17
|
+
date: 2011-05-09 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: bundler
|
22
|
-
prerelease: false
|
23
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
@@ -30,10 +29,10 @@ dependencies:
|
|
30
29
|
- 0
|
31
30
|
version: "1.0"
|
32
31
|
type: :development
|
32
|
+
prerelease: false
|
33
33
|
version_requirements: *id001
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rake
|
36
|
-
prerelease: false
|
37
36
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
37
|
none: false
|
39
38
|
requirements:
|
@@ -44,10 +43,10 @@ dependencies:
|
|
44
43
|
- 8
|
45
44
|
version: "0.8"
|
46
45
|
type: :development
|
46
|
+
prerelease: false
|
47
47
|
version_requirements: *id002
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
|
-
prerelease: false
|
51
50
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
52
|
requirements:
|
@@ -58,10 +57,10 @@ dependencies:
|
|
58
57
|
- 4
|
59
58
|
version: "2.4"
|
60
59
|
type: :development
|
60
|
+
prerelease: false
|
61
61
|
version_requirements: *id003
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: yard
|
64
|
-
prerelease: false
|
65
64
|
requirement: &id004 !ruby/object:Gem::Requirement
|
66
65
|
none: false
|
67
66
|
requirements:
|
@@ -72,10 +71,10 @@ dependencies:
|
|
72
71
|
- 6
|
73
72
|
version: "0.6"
|
74
73
|
type: :development
|
74
|
+
prerelease: false
|
75
75
|
version_requirements: *id004
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: simplecov
|
78
|
-
prerelease: false
|
79
78
|
requirement: &id005 !ruby/object:Gem::Requirement
|
80
79
|
none: false
|
81
80
|
requirements:
|
@@ -86,10 +85,10 @@ dependencies:
|
|
86
85
|
- 3
|
87
86
|
version: "0.3"
|
88
87
|
type: :development
|
88
|
+
prerelease: false
|
89
89
|
version_requirements: *id005
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
91
|
name: webmock
|
92
|
-
prerelease: false
|
93
92
|
requirement: &id006 !ruby/object:Gem::Requirement
|
94
93
|
none: false
|
95
94
|
requirements:
|
@@ -100,10 +99,10 @@ dependencies:
|
|
100
99
|
- 6
|
101
100
|
version: "1.6"
|
102
101
|
type: :development
|
102
|
+
prerelease: false
|
103
103
|
version_requirements: *id006
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: ZenTest
|
106
|
-
prerelease: false
|
107
106
|
requirement: &id007 !ruby/object:Gem::Requirement
|
108
107
|
none: false
|
109
108
|
requirements:
|
@@ -114,25 +113,25 @@ dependencies:
|
|
114
113
|
- 4
|
115
114
|
version: "4.4"
|
116
115
|
type: :development
|
116
|
+
prerelease: false
|
117
117
|
version_requirements: *id007
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
|
-
name:
|
120
|
-
prerelease: false
|
119
|
+
name: bluecloth
|
121
120
|
requirement: &id008 !ruby/object:Gem::Requirement
|
122
121
|
none: false
|
123
122
|
requirements:
|
124
123
|
- - ~>
|
125
124
|
- !ruby/object:Gem::Version
|
126
125
|
segments:
|
126
|
+
- 2
|
127
127
|
- 0
|
128
|
-
-
|
129
|
-
|
130
|
-
|
131
|
-
|
128
|
+
- 11
|
129
|
+
version: 2.0.11
|
130
|
+
type: :development
|
131
|
+
prerelease: false
|
132
132
|
version_requirements: *id008
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
|
-
name:
|
135
|
-
prerelease: false
|
134
|
+
name: faraday
|
136
135
|
requirement: &id009 !ruby/object:Gem::Requirement
|
137
136
|
none: false
|
138
137
|
requirements:
|
@@ -140,14 +139,14 @@ dependencies:
|
|
140
139
|
- !ruby/object:Gem::Version
|
141
140
|
segments:
|
142
141
|
- 0
|
143
|
-
-
|
144
|
-
-
|
145
|
-
version: 0.
|
142
|
+
- 5
|
143
|
+
- 4
|
144
|
+
version: 0.5.4
|
146
145
|
type: :runtime
|
146
|
+
prerelease: false
|
147
147
|
version_requirements: *id009
|
148
148
|
- !ruby/object:Gem::Dependency
|
149
|
-
name:
|
150
|
-
prerelease: false
|
149
|
+
name: faraday_middleware
|
151
150
|
requirement: &id010 !ruby/object:Gem::Requirement
|
152
151
|
none: false
|
153
152
|
requirements:
|
@@ -155,40 +154,41 @@ dependencies:
|
|
155
154
|
- !ruby/object:Gem::Version
|
156
155
|
segments:
|
157
156
|
- 0
|
158
|
-
-
|
159
|
-
-
|
160
|
-
version: 0.
|
157
|
+
- 3
|
158
|
+
- 1
|
159
|
+
version: 0.3.1
|
161
160
|
type: :runtime
|
161
|
+
prerelease: false
|
162
162
|
version_requirements: *id010
|
163
163
|
- !ruby/object:Gem::Dependency
|
164
|
-
name:
|
165
|
-
prerelease: false
|
164
|
+
name: multi_json
|
166
165
|
requirement: &id011 !ruby/object:Gem::Requirement
|
167
166
|
none: false
|
168
167
|
requirements:
|
169
168
|
- - ~>
|
170
169
|
- !ruby/object:Gem::Version
|
171
170
|
segments:
|
172
|
-
- 1
|
173
171
|
- 0
|
174
172
|
- 0
|
175
|
-
|
173
|
+
- 5
|
174
|
+
version: 0.0.5
|
176
175
|
type: :runtime
|
176
|
+
prerelease: false
|
177
177
|
version_requirements: *id011
|
178
178
|
- !ruby/object:Gem::Dependency
|
179
|
-
name:
|
180
|
-
prerelease: false
|
179
|
+
name: hashie
|
181
180
|
requirement: &id012 !ruby/object:Gem::Requirement
|
182
181
|
none: false
|
183
182
|
requirements:
|
184
183
|
- - ~>
|
185
184
|
- !ruby/object:Gem::Version
|
186
185
|
segments:
|
186
|
+
- 1
|
187
187
|
- 0
|
188
|
-
- 4
|
189
188
|
- 0
|
190
|
-
version: 0.
|
189
|
+
version: 1.0.0
|
191
190
|
type: :runtime
|
191
|
+
prerelease: false
|
192
192
|
version_requirements: *id012
|
193
193
|
description: A Ruby wrapper for the Instagram REST and Search APIs
|
194
194
|
email:
|
@@ -215,10 +215,10 @@ files:
|
|
215
215
|
- lib/instagram/api.rb
|
216
216
|
- lib/instagram/client.rb
|
217
217
|
- lib/instagram/client/comments.rb
|
218
|
+
- lib/instagram/client/geographies.rb
|
218
219
|
- lib/instagram/client/likes.rb
|
219
220
|
- lib/instagram/client/locations.rb
|
220
221
|
- lib/instagram/client/media.rb
|
221
|
-
- lib/instagram/client/real_time.rb
|
222
222
|
- lib/instagram/client/subscriptions.rb
|
223
223
|
- lib/instagram/client/tags.rb
|
224
224
|
- lib/instagram/client/users.rb
|
@@ -231,8 +231,13 @@ files:
|
|
231
231
|
- lib/instagram/version.rb
|
232
232
|
- spec/faraday/response_spec.rb
|
233
233
|
- spec/fixtures/access_token.json
|
234
|
+
- spec/fixtures/approve_user.json
|
235
|
+
- spec/fixtures/block_user.json
|
236
|
+
- spec/fixtures/deny_user.json
|
237
|
+
- spec/fixtures/follow_user.json
|
234
238
|
- spec/fixtures/followed_by.json
|
235
239
|
- spec/fixtures/follows.json
|
240
|
+
- spec/fixtures/geography_recent_media.json
|
236
241
|
- spec/fixtures/location.json
|
237
242
|
- spec/fixtures/location_recent_media.json
|
238
243
|
- spec/fixtures/location_search.json
|
@@ -247,6 +252,7 @@ files:
|
|
247
252
|
- spec/fixtures/media_unliked.json
|
248
253
|
- spec/fixtures/mikeyk.json
|
249
254
|
- spec/fixtures/recent_media.json
|
255
|
+
- spec/fixtures/relationship.json
|
250
256
|
- spec/fixtures/requested_by.json
|
251
257
|
- spec/fixtures/shayne.json
|
252
258
|
- spec/fixtures/subscription.json
|
@@ -256,14 +262,16 @@ files:
|
|
256
262
|
- spec/fixtures/tag.json
|
257
263
|
- spec/fixtures/tag_recent_media.json
|
258
264
|
- spec/fixtures/tag_search.json
|
265
|
+
- spec/fixtures/unblock_user.json
|
266
|
+
- spec/fixtures/unfollow_user.json
|
259
267
|
- spec/fixtures/user_media_feed.json
|
260
268
|
- spec/fixtures/user_search.json
|
261
269
|
- spec/instagram/api_spec.rb
|
262
270
|
- spec/instagram/client/comments_spec.rb
|
271
|
+
- spec/instagram/client/geography_spec.rb
|
263
272
|
- spec/instagram/client/likes_spec.rb
|
264
273
|
- spec/instagram/client/locations_spec.rb
|
265
274
|
- spec/instagram/client/media_spec.rb
|
266
|
-
- spec/instagram/client/real_time_spec.rb
|
267
275
|
- spec/instagram/client/subscriptions_spec.rb
|
268
276
|
- spec/instagram/client/tags_spec.rb
|
269
277
|
- spec/instagram/client/users_spec.rb
|
@@ -294,6 +302,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
294
302
|
requirements:
|
295
303
|
- - ">="
|
296
304
|
- !ruby/object:Gem::Version
|
305
|
+
hash: -798514324542914506
|
297
306
|
segments:
|
298
307
|
- 0
|
299
308
|
version: "0"
|
@@ -317,8 +326,13 @@ summary: Ruby wrapper for the Instagram API
|
|
317
326
|
test_files:
|
318
327
|
- spec/faraday/response_spec.rb
|
319
328
|
- spec/fixtures/access_token.json
|
329
|
+
- spec/fixtures/approve_user.json
|
330
|
+
- spec/fixtures/block_user.json
|
331
|
+
- spec/fixtures/deny_user.json
|
332
|
+
- spec/fixtures/follow_user.json
|
320
333
|
- spec/fixtures/followed_by.json
|
321
334
|
- spec/fixtures/follows.json
|
335
|
+
- spec/fixtures/geography_recent_media.json
|
322
336
|
- spec/fixtures/location.json
|
323
337
|
- spec/fixtures/location_recent_media.json
|
324
338
|
- spec/fixtures/location_search.json
|
@@ -333,6 +347,7 @@ test_files:
|
|
333
347
|
- spec/fixtures/media_unliked.json
|
334
348
|
- spec/fixtures/mikeyk.json
|
335
349
|
- spec/fixtures/recent_media.json
|
350
|
+
- spec/fixtures/relationship.json
|
336
351
|
- spec/fixtures/requested_by.json
|
337
352
|
- spec/fixtures/shayne.json
|
338
353
|
- spec/fixtures/subscription.json
|
@@ -342,14 +357,16 @@ test_files:
|
|
342
357
|
- spec/fixtures/tag.json
|
343
358
|
- spec/fixtures/tag_recent_media.json
|
344
359
|
- spec/fixtures/tag_search.json
|
360
|
+
- spec/fixtures/unblock_user.json
|
361
|
+
- spec/fixtures/unfollow_user.json
|
345
362
|
- spec/fixtures/user_media_feed.json
|
346
363
|
- spec/fixtures/user_search.json
|
347
364
|
- spec/instagram/api_spec.rb
|
348
365
|
- spec/instagram/client/comments_spec.rb
|
366
|
+
- spec/instagram/client/geography_spec.rb
|
349
367
|
- spec/instagram/client/likes_spec.rb
|
350
368
|
- spec/instagram/client/locations_spec.rb
|
351
369
|
- spec/instagram/client/media_spec.rb
|
352
|
-
- spec/instagram/client/real_time_spec.rb
|
353
370
|
- spec/instagram/client/subscriptions_spec.rb
|
354
371
|
- spec/instagram/client/tags_spec.rb
|
355
372
|
- spec/instagram/client/users_spec.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe Instagram::Client do
|
4
|
-
Instagram::Configuration::VALID_FORMATS.each do |format|
|
5
|
-
context ".new(:format => '#{format}')" do
|
6
|
-
|
7
|
-
before do
|
8
|
-
@client = Instagram::Client.new(:format => format, :client_id => 'CID', :access_token => 'AT')
|
9
|
-
end
|
10
|
-
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|