smart_vk_api 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +52 -0
- data/lib/smart_vk_api/methods.rb +7 -0
- data/lib/smart_vk_api/version.rb +1 -1
- data/spec/methods_spec.rb +6 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8354ecbe8304332b16d0b43a4c69060d19ef0cf5
|
4
|
+
data.tar.gz: fafd8588f05532cb2609a04a36ec0f9e4099edc5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a23dfe06a3160339651dbc49244401d8d9202bf6bc86c3d2f1c11c5822869d7494fc7cd1ec22e2453a5269433dfcb7dd001e25e6357a19a6181227d11294302
|
7
|
+
data.tar.gz: 4cc3ebfc7cc1aea74f878d46c1635d343a6efadc50077bab16b6fd12ce9c86a3102220e8300ab6449d592b4c0133372f07198edc7e0ed328f2235189fe146418
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -39,6 +39,58 @@ $ bundle install
|
|
39
39
|
$ gem install smart_vk_api
|
40
40
|
```
|
41
41
|
|
42
|
+
## Прямое использование API
|
43
|
+
|
44
|
+
В простейшем случае можно вызвать произвольный метод VK API и передать ему параметры следующим образом:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
SmartVkApi.call('users.get', :user_ids => 'kimrgrey') # [{:uid=>3710412, ...}]
|
48
|
+
```
|
49
|
+
|
50
|
+
Для вызова нескольких методов разумно создать враппер один раз и использовать его повторно:
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
vk = SmartVkApi.vk
|
54
|
+
vk.call('users.get', :user_ids => 'kimrgrey') # [{:uid=>3710412, ...}]
|
55
|
+
vk.call('photos.get', :owner_id => '3710412', :album_id => 'wall')
|
56
|
+
```
|
57
|
+
|
58
|
+
По умолчанию, `access_token` не передается, так что для вызова доступны только публичные методы. При попытке вызвать метод, требующий наличие токена, возникнет исключение `SmartVkApi::MethodCallError`. Например:
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
SmartVkApi.call('wall.get', :owner_id => '3710412') # SmartVkApi::MethodCallError: {"error":{..., "error_msg":"Access denied: user hid his wall from accessing from outside"}}
|
62
|
+
```
|
63
|
+
|
64
|
+
Чтобы вызвать приватные методы, можно задать глобальный конфиг, токен из которого будет использоваться по умолчанию, если он задан:
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
SmartVkApi.configure do |config|
|
68
|
+
config.access_token = ACCESS_TOKEN
|
69
|
+
end
|
70
|
+
```
|
71
|
+
|
72
|
+
Если при этом передать другой `access_token` в качестве параметра для метода `call`, ему будет отдано предпочтение:
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
SmartVkApi.call('users.get', :user_ids => 'kimrgrey', :access_token => ANOTHER_ACCESS_TOKEN)
|
76
|
+
```
|
77
|
+
|
78
|
+
## Проксирующий объект
|
79
|
+
|
80
|
+
Вместо прямых обращений к API через передачу имени метода в качестве параметра для `call` можно использовать более удобный вариант, позволяющий вызывать методы VK API как собственные методы враппера. Пример:
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
vk = SmartVkApi.vk
|
84
|
+
vk.users.get(:user_ids => 'kimrgrey')
|
85
|
+
```
|
86
|
+
|
87
|
+
Токен доступа, как и для прямых вызовов, можно задать в конфиге или передать в качестве параметра метода.
|
88
|
+
|
89
|
+
```ruby
|
90
|
+
vk = SmartVkApi.vk
|
91
|
+
vk.users.get(:user_ids => 'kimrgrey', :access_token => ACCESS_TOKEN)
|
92
|
+
```
|
93
|
+
|
42
94
|
## Как помочь в разработке?
|
43
95
|
|
44
96
|
Все как обычно:
|
data/lib/smart_vk_api/methods.rb
CHANGED
@@ -12,12 +12,19 @@ module SmartVkApi
|
|
12
12
|
attr_accessor :vk
|
13
13
|
attr_accessor :scope
|
14
14
|
|
15
|
+
def self.camelcase(method_name)
|
16
|
+
result = method_name.to_s.split('_').map(&:capitalize).join
|
17
|
+
result[0] = result[0].downcase
|
18
|
+
result
|
19
|
+
end
|
20
|
+
|
15
21
|
def initialize(vk, scope)
|
16
22
|
self.vk = vk
|
17
23
|
self.scope = scope
|
18
24
|
end
|
19
25
|
|
20
26
|
def method_missing(method_name, *arguments, &block)
|
27
|
+
method_name = Proxy.camelcase(method_name)
|
21
28
|
vk.call("#{scope}.#{method_name}", arguments.first)
|
22
29
|
end
|
23
30
|
|
data/lib/smart_vk_api/version.rb
CHANGED
data/spec/methods_spec.rb
CHANGED
@@ -26,6 +26,12 @@ describe SmartVkApi::VK do
|
|
26
26
|
vk.users.get({:user_ids => "kimrgrey"})
|
27
27
|
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/users.get?user_ids=kimrgrey")
|
28
28
|
end
|
29
|
+
|
30
|
+
it 'should convert method name using CamelCase' do
|
31
|
+
stub_request(:get, "https://api.vk.com/method/users.isAppUser?user_id=kimrgrey").to_return(:status => 200, :body => default_response_body.to_json)
|
32
|
+
vk.users.is_app_user(:user_id => 'kimrgrey')
|
33
|
+
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/users.isAppUser?user_id=kimrgrey")
|
34
|
+
end
|
29
35
|
end
|
30
36
|
|
31
37
|
describe 'configuration' do
|