smart_vk_api 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|