instagram_api_client 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 64ea4b37b0138bbd3d2c8da8f47db69ae42a94b9
4
- data.tar.gz: ee8af806017b7327754a832edf711ca4117cb004
3
+ metadata.gz: 887baccb0b7d3120a0ee92699dcd921b4c570b72
4
+ data.tar.gz: 814b97dfe0ed9fa03a0288083eca1d9ab40d3619
5
5
  SHA512:
6
- metadata.gz: 5fcb4202fd585628871edf2fa4637029c7767d57e9a7d646f0b8cb0758147f8a1235cc1ba0f557778d536c0571dcd40cda1f1be42802b9f0ce7dd82d5cf1f22e
7
- data.tar.gz: 7829f62adf748a4ec94b914f57cdd740803d70d94c69bfccc81e0a9a0a62871b3c2b26bedf31a0802fe4717ad587ff7919ab549e37cff6d500a91b8a6696b444
6
+ metadata.gz: 4914cbf47863676d499ed7cc7373cab55fef640358d0d2c6abcca69112d7459a639557cb0e1a711f23cdce7cc6249d51b6925c27704d03635f0330a5b107e582
7
+ data.tar.gz: bf86c1804a3e89fe4028413354dd88d303f811746bcdd6954e1deed75b2ab38d520051917ff29fb60b6e4b79045a8f4ae46b4f3ca94763881915de9cf0e2997f
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/agilie/GoButton)
1
+ [![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/agilie/instagram_api_gem)
2
2
 
3
3
  # InstagramApi
4
4
 
@@ -8,7 +8,7 @@ You can see the api endpoints here https://www.instagram.com/developer/endpoints
8
8
  ## Installation
9
9
 
10
10
  ```ruby
11
- gem install instagram_api
11
+ gem install instagram_api_client
12
12
  ```
13
13
 
14
14
  ## Usage
@@ -26,6 +26,66 @@ As for now Instagram access token doesn't change or expire, so you can use this
26
26
  to generate it http://services.chrisriversdesign.com/instagram-token/
27
27
  I the nearest future the OAuth authorization for access token fetching will be implemented.
28
28
 
29
+ The main module of the gem is `InstagramAPI`. It provides a series of methods, regarding each Instagram resource. They are:
30
+ `Users`, `Media`, `Comments`, `Likes`, `Tags` and `Locations`. So the `Users` resource methods can be accessed by `InstagramAPI.user`
31
+ method, `Tags` by `InstagramAPI.tag` and so on.
32
+
33
+ The main methods of each resource are `show`, `index`, `create`, `destroy` and `search`. The methods and API endpoints
34
+ correspondence is as follows
35
+
36
+ | | |
37
+ | -------- | ----- |
38
+ | **User Resource** | |
39
+ | InstagramAPI.user.show | GET /users/self |
40
+ | InstagramAPI.user(**user_id**).show | GET /users/**user_id** |
41
+ | InstagramAPI.user.recent_media | GET /users/self/media/recent |
42
+ | InstagramAPI.user(**user_id**).recent_media | GET /users/**user_id**/media/recent |
43
+ | InstagramAPI.user.liked_media | GET /users/self/media/liked |
44
+ | InstagramAPI.user.search(**search_query**) | GET /users/search |
45
+ | *Relationship Endpoints block* | |
46
+ | InstagramAPI.user.follows | GET /users/self/follows |
47
+ | InstagramAPI.user.followed_by | GET /users/self/followed-by |
48
+ | InstagramAPI.user.requested_by | GET /users/self/requested-by |
49
+ | InstagramAPI.user.check_relationship(**user_id**) | GET /users/**user_id**/relathionship |
50
+ | InstagramAPI.user.change_relationship(**user_id**) | POST /users/**user_id**/relathionship |
51
+ | **Media Resource** | |
52
+ | InstagramAPI.media(**media_id**).show | GET /media/**media_id** |
53
+ | InstagramAPI.media.short_code(**short_code**) | GET /media/shortcode/**shortcode** |
54
+ | InstagramAPI.media.search(**search_query**) | GET /media/search |
55
+ | *Likes Endpoints block* | |
56
+ | InstagramAPI.media(media_id).likes | GET /media/**media_id**/likes |
57
+ | InstagramAPI.media(media_id).add_like | POST /media/**media_id**/likes |
58
+ | InstagramAPI.media(media_id).delete_like | DELETE /media/**media_id**/likes |
59
+ | *Comment Endpoints block* | |
60
+ | InstagramAPI.media(media_id).comments | GET /media/**media_id**/comments |
61
+ | InstagramAPI.media(media_id).add_comment | POST /media/**media_id**/comments |
62
+ | InstagramAPI.media(media_id).delete_comment(**comment_id**) | DELETE /media/**media_id**/comments/**comment_id** |
63
+ | **Tag Resource** | |
64
+ | InstagramAPI.tag(**tag_name**).show | GET /tags/**tag_name** |
65
+ | InstagramAPI.tag(**tag_name**).recent_media | GET /tags/**tag_name**/media/recent |
66
+ | InstagramAPI.tag.search(**search_query**) | GET /tags/search |
67
+ | **Location Resource** | |
68
+ | InstagramAPI.location(**location_id**).show | GET /locations/**location_id** |
69
+ | InstagramAPI.location(**location_id**).recent_media | GET /locations/**location_id**/media/recent |
70
+ | InstagramAPI.location.search(**search_query**) | GET /locations/search |
71
+
72
+ Each method from the list above accepts a hash as a second argument with additional params according to official
73
+ [instagram developers documentation](https://www.instagram.com/developer/endpoints/) i.e.
74
+
75
+ ```ruby
76
+ InstagramAPI.user.search('mell', {count: 10})
77
+ InstagramAPI.user('my_user_id').recent_media({min_id: '22721881'})
78
+ ```
79
+
80
+ Search method can get either a query string or a hash. It depends on API requirements, i.e.
81
+ ```ruby
82
+ InstagramAPI.user.search('mell')
83
+ InstagramAPI.location.search({lat: 33.10, lng: 15.40})
84
+ ```
85
+
86
+ Response is a `Hashie::Mash` object
87
+
88
+
29
89
  ## TODOS
30
90
 
31
91
  1. OAuth authorization for access token fetching
@@ -39,7 +99,7 @@ the solution or create an new issue that we will fix asap. Feel free to contribu
39
99
  This project is intended to be a safe, welcoming space for collaboration.
40
100
 
41
101
  ## Author
42
- This gem is open-sourced by [Agilie Team](https://www.agilie.com) ([info@agilie.com](mailto:info@agilie.com))
102
+ This gem is open-sourced by [Agilie Team](https://www.agilie.com?utm_source=github&utm_medium=referral&utm_campaign=Git_Ruby&utm_term=instagram_api_gem) ([info@agilie.com](mailto:info@agilie.com))
43
103
 
44
104
  ## Contributor
45
105
  [Sergey Mell](https://github.com/SergeyMell)
@@ -52,5 +112,5 @@ We will continue publishing new open-source projects. Stay with us, more updates
52
112
 
53
113
  ## License
54
114
 
55
- The gem is available as open source under the [MIT](LICENSE.md) License (MIT) Copyright © 2017 [Agilie Team](https://www.agilie.com)
115
+ The gem is available as open source under the [MIT](LICENSE.md) License (MIT) Copyright © 2017 [Agilie Team](https://www.agilie.com?utm_source=github&utm_medium=referral&utm_campaign=Git_Ruby&utm_term=instagram_api_gem)
56
116
 
@@ -6,8 +6,8 @@ require 'instagram_api/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'instagram_api_client'
8
8
  spec.version = InstagramApi::VERSION
9
- spec.authors = ['SergeyMell']
10
- spec.email = ['sergey.mell@agilie.com']
9
+ spec.authors = ['Sergey Mell', 'Agilie Team']
10
+ spec.email = ['sergey.mell@agilie.com', 'web@agilie.com']
11
11
 
12
12
  spec.summary = 'A Ruby wrapper for the Instagram API'
13
13
  spec.description = 'A Ruby wrapper for the Instagram API'
@@ -6,7 +6,8 @@ module InstagramApi
6
6
  include Client
7
7
 
8
8
  def search(query, options = {})
9
- make_request resource_path('search'), query: options.merge(q: query)
9
+ options = query.is_a?(Hash) ? options.merge(query) : options.merge(q: query)
10
+ make_request resource_path('search'), query: options
10
11
  end
11
12
  end
12
13
 
@@ -4,11 +4,16 @@ module InstagramApi
4
4
 
5
5
  class Location
6
6
  include Search
7
+ include Resource
7
8
 
8
9
  def initialize(location_id = nil)
9
10
  @location_id = location_id
10
11
  end
11
12
 
13
+ def show
14
+ super @location_id
15
+ end
16
+
12
17
  def recent_media(options = {})
13
18
  index @location_id, 'media/recent', options
14
19
  end
@@ -10,6 +10,10 @@ module InstagramApi
10
10
  @tag_id = tag_id
11
11
  end
12
12
 
13
+ def show
14
+ super @tag_id
15
+ end
16
+
13
17
  def recent_media(options = {})
14
18
  index @tag_id, 'media/recent', options
15
19
  end
@@ -30,6 +30,10 @@ module InstagramApi
30
30
  make_request resource_path('self/followed-by'), query: options
31
31
  end
32
32
 
33
+ def requested_by(options = {})
34
+ make_request resource_path('self/requested-by'), query: options
35
+ end
36
+
33
37
  def check_relationship(user_id, options = {})
34
38
  make_request resource_path("#{user_id}/relationship"), query: options
35
39
  end
@@ -1,3 +1,3 @@
1
1
  module InstagramApi
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instagram_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
- - SergeyMell
7
+ - Sergey Mell
8
+ - Agilie Team
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
@@ -97,6 +98,7 @@ dependencies:
97
98
  description: A Ruby wrapper for the Instagram API
98
99
  email:
99
100
  - sergey.mell@agilie.com
101
+ - web@agilie.com
100
102
  executables: []
101
103
  extensions: []
102
104
  extra_rdoc_files: []