vkontakte_api 1.0.1 → 1.0.2
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.
- 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
|