Skip to content

Commit

Permalink
release 1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
7even committed Dec 17, 2012
1 parent a51bde0 commit e64a9f1
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 6 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 1.1 (18.12.2012)

* Передача `redirect_uri` при получении токена
* Методы для работы с правами и сроком жизни токена
* Логгирование тела POST-запроса
* POST-запросы по умолчанию

## 1.0.4 (22.09.2012)

* Пространство имен `orders`
Expand Down
42 changes: 37 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,41 @@ VkontakteApi.authorization_url(type: :client, scope: [:friends, :photos])
@vk = VkontakteApi.authorize(type: :app_server)
```

### Прочее

Если клиент API (объект класса `VkontakteApi::Client`) был создан с помощью метода `VkontakteApi.authorize`, он будет содержать информацию об id текущего пользователя (`user_id`) и о времени истечения токена (`expires_at`). Получить их можно с помощью соответствующих методов:

``` ruby
vk = VkontakteApi.authorize(code: 'c1493e81f69fce1b43')
# => #<VkontakteApi::Client:0x007fa578f00ad0>
vk.user_id # => 628985
vk.expires_at # => 2012-12-18 23:22:55 +0400
# можно проверить, истекло ли время жизни токена
vk.expired? # => false
```

Также можно получить список прав доступа, которые дает данный токен, в виде, аналогичном формату параметра `scope` в авторизации:

``` ruby
vk.scope # => [:friends, :groups]
```

Это работает на основе метода `getUserSettings`, причем результат запоминается после первого обращения.

Чтобы создать короткий синоним `VK` для модуля `VkontakteApi`, достаточно вызвать метод `VkontakteApi.register_alias`:

``` ruby
VkontakteApi.register_alias
VK::Client.new # => #<VkontakteApi::Client:0x007fa578d6d948>
```

При необходимости можно удалить синоним методом `VkontakteApi.unregister_alias`:

``` ruby
VK.unregister_alias
VK # => NameError: uninitialized constant VK
```

### Обработка ошибок

Если ВКонтакте API возвращает ошибку, выбрасывается исключение класса `VkontakteApi::Error`.
Expand Down Expand Up @@ -179,7 +214,7 @@ VkontakteApi.configure do |config|
# faraday-адаптер для сетевых запросов
config.adapter = :net_http
# HTTP-метод для вызова методов API (:get или :post)
config.http_verb = :get
config.http_verb = :post
# параметры для faraday-соединения
config.faraday_options = {
ssl: {
Expand All @@ -198,14 +233,11 @@ VkontakteApi.configure do |config|
config.log_errors = true # ошибки
config.log_responses = false # удачные ответы
end

# создание короткого алиаса VK для модуля VkontakteApi
VkontakteApi.register_alias
```

По умолчанию для HTTP-запросов используется `Net::HTTP`; можно выбрать [любой другой адаптер](https://github.com/technoweenie/faraday/blob/master/lib/faraday/adapter.rb), поддерживаемый `faraday`.

ВКонтакте [позволяет](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`-запросы.
ВКонтакте [позволяет](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` использует `POST`, но в настройке `http_verb` можно указать `:get`, чтобы совершать `GET`-запросы.

При необходимости можно указать параметры для faraday-соединения - например, параметры прокси-сервера или путь к SSL-сертификатам.

Expand Down
2 changes: 1 addition & 1 deletion lib/vkontakte_api/version.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module VkontakteApi
# Library version.
VERSION = '1.1.beta'
VERSION = '1.1'
end

0 comments on commit e64a9f1

Please sign in to comment.