vkontakte_api 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/README.md +5 -0
- data/lib/generators/vkontakte_api/install/templates/initializer.rb +3 -0
- data/lib/vkontakte_api/api.rb +2 -1
- data/lib/vkontakte_api/configuration.rb +16 -1
- data/lib/vkontakte_api/namespaces.yml +1 -0
- data/lib/vkontakte_api/version.rb +1 -1
- data/spec/vkontakte_api/api_spec.rb +13 -0
- data/spec/vkontakte_api/configuration_spec.rb +1 -0
- metadata +2 -2
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -178,6 +178,8 @@ VkontakteApi.configure do |config|
|
|
178
178
|
|
179
179
|
# faraday-адаптер для сетевых запросов
|
180
180
|
config.adapter = :net_http
|
181
|
+
# HTTP-метод для вызова методов API (:get или :post)
|
182
|
+
config.http_verb = :get
|
181
183
|
# параметры для faraday-соединения
|
182
184
|
config.faraday_options = {
|
183
185
|
ssl: {
|
@@ -203,6 +205,8 @@ VkontakteApi.register_alias
|
|
203
205
|
|
204
206
|
По умолчанию для HTTP-запросов используется `Net::HTTP`; можно выбрать [любой другой адаптер](https://github.com/technoweenie/faraday/blob/master/lib/faraday/adapter.rb), поддерживаемый `faraday`.
|
205
207
|
|
208
|
+
ВКонтакте [позволяет](http://vk.com/developers.php?oid=-1&p=%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%BA_API) использовать как `GET`-, так и `POST`-запросы при вызове методов API. По умолчанию `vkontakte_api` использует `GET`, но в настройке `http_verb` можно указать `:post`, чтобы совершать `POST`-запросы.
|
209
|
+
|
206
210
|
При необходимости можно указать параметры для faraday-соединения - например, параметры прокси-сервера или путь к SSL-сертификатам.
|
207
211
|
|
208
212
|
Чтобы сгенерировать файл с настройками по умолчанию в rails-приложении, можно воспользоваться генератором `vkontakte_api:install`:
|
@@ -222,6 +226,7 @@ $ rails generate vkontakte_api:install
|
|
222
226
|
|
223
227
|
* метод, возвращающий права текущего токена в читабельной форме (используя `getUserSettings` и кэшируя результат)
|
224
228
|
* сохранение параметра `expires_in` токена в объекте `VkontakteApi::Client` после авторизации через `VkontakteApi.authorize`
|
229
|
+
* `POST`-запросы по умолчанию
|
225
230
|
|
226
231
|
## Участие в разработке
|
227
232
|
|
@@ -7,6 +7,9 @@ VkontakteApi.configure do |config|
|
|
7
7
|
# Faraday adapter to make requests with:
|
8
8
|
# config.adapter = :net_http
|
9
9
|
|
10
|
+
# HTTP verb for API methods (:get or :post)
|
11
|
+
# config.http_verb = :get
|
12
|
+
|
10
13
|
# Logging parameters:
|
11
14
|
# log everything through the rails logger
|
12
15
|
config.logger = Rails.logger
|
data/lib/vkontakte_api/api.rb
CHANGED
@@ -14,7 +14,7 @@ module VkontakteApi
|
|
14
14
|
# @return [Hashie::Mash] Mashed server response.
|
15
15
|
def call(method_name, args = {}, token = nil)
|
16
16
|
flat_arguments = Utils.flatten_arguments(args)
|
17
|
-
connection(:url => URL_PREFIX, :token => token).
|
17
|
+
connection(:url => URL_PREFIX, :token => token).send(VkontakteApi.http_verb, method_name, flat_arguments).body
|
18
18
|
end
|
19
19
|
|
20
20
|
# Faraday connection.
|
@@ -29,6 +29,7 @@ module VkontakteApi
|
|
29
29
|
Faraday.new(url, VkontakteApi.faraday_options) do |builder|
|
30
30
|
builder.request :oauth2, token unless token.nil?
|
31
31
|
builder.request :multipart
|
32
|
+
builder.request :url_encoded
|
32
33
|
builder.response :vk_logger
|
33
34
|
builder.response :mashify
|
34
35
|
builder.response :oj, :preserve_raw => true
|
@@ -6,7 +6,18 @@ module VkontakteApi
|
|
6
6
|
# @note `VkontakteApi::Configuration` extends `VkontakteApi` so these methods should be called from the latter.
|
7
7
|
module Configuration
|
8
8
|
# Available options.
|
9
|
-
OPTION_NAMES = [
|
9
|
+
OPTION_NAMES = [
|
10
|
+
:app_id,
|
11
|
+
:app_secret,
|
12
|
+
:redirect_uri,
|
13
|
+
:adapter,
|
14
|
+
:http_verb,
|
15
|
+
:faraday_options,
|
16
|
+
:logger,
|
17
|
+
:log_requests,
|
18
|
+
:log_errors,
|
19
|
+
:log_responses
|
20
|
+
]
|
10
21
|
|
11
22
|
attr_accessor *OPTION_NAMES
|
12
23
|
|
@@ -17,6 +28,9 @@ module VkontakteApi
|
|
17
28
|
# Default HTTP adapter.
|
18
29
|
DEFAULT_ADAPTER = Faraday.default_adapter
|
19
30
|
|
31
|
+
# Default HTTP verb for API methods.
|
32
|
+
DEFAULT_HTTP_VERB = :get
|
33
|
+
|
20
34
|
# Logger default options.
|
21
35
|
DEFAULT_LOGGER_OPTIONS = {
|
22
36
|
:requests => true,
|
@@ -38,6 +52,7 @@ module VkontakteApi
|
|
38
52
|
# Reset all configuration options to defaults.
|
39
53
|
def reset
|
40
54
|
@adapter = DEFAULT_ADAPTER
|
55
|
+
@http_verb = DEFAULT_HTTP_VERB
|
41
56
|
@faraday_options = {}
|
42
57
|
@logger = ::Logger.new(STDOUT)
|
43
58
|
@log_requests = DEFAULT_LOGGER_OPTIONS[:requests]
|
@@ -31,6 +31,19 @@ describe VkontakteApi::API do
|
|
31
31
|
it "returns the response body" do
|
32
32
|
subject.call('apiMethod').should == @result
|
33
33
|
end
|
34
|
+
|
35
|
+
it "uses an HTTP verb from VkontakteApi.http_verb" do
|
36
|
+
http_verb = stub("HTTP verb")
|
37
|
+
VkontakteApi.http_verb = http_verb
|
38
|
+
|
39
|
+
response = stub("Response", :body => stub)
|
40
|
+
@connection.should_receive(:send).with(http_verb, 'apiMethod', {}).and_return(response)
|
41
|
+
subject.call('apiMethod')
|
42
|
+
end
|
43
|
+
|
44
|
+
after(:each) do
|
45
|
+
VkontakteApi.reset
|
46
|
+
end
|
34
47
|
end
|
35
48
|
|
36
49
|
describe ".connection" do
|
@@ -24,6 +24,7 @@ describe VkontakteApi::Configuration do
|
|
24
24
|
Configurable.app_id.should be_nil
|
25
25
|
Configurable.app_secret.should be_nil
|
26
26
|
Configurable.adapter.should == VkontakteApi::Configuration::DEFAULT_ADAPTER
|
27
|
+
Configurable.http_verb.should == VkontakteApi::Configuration::DEFAULT_HTTP_VERB
|
27
28
|
Configurable.faraday_options.should == {}
|
28
29
|
|
29
30
|
Configurable.logger.should be_a(Logger)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vkontakte_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08
|
12
|
+
date: 2012-09-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|