vkontakte_api 1.0.rc → 1.0.rc2
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/.travis.yml +1 -1
- data/README.md +11 -5
- data/lib/vkontakte_api/client.rb +9 -2
- data/lib/vkontakte_api/version.rb +1 -1
- data/spec/vkontakte_api/client_spec.rb +3 -1
- data/vkontakte_api.gemspec +2 -2
- metadata +6 -6
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -6,13 +6,13 @@
|
|
6
6
|
|
7
7
|
``` ruby
|
8
8
|
# Gemfile
|
9
|
-
gem 'vkontakte_api', '~> 1.0.
|
9
|
+
gem 'vkontakte_api', '~> 1.0.rc2'
|
10
10
|
```
|
11
11
|
|
12
12
|
или просто
|
13
13
|
|
14
14
|
``` sh
|
15
|
-
$ gem install vkontakte_api
|
15
|
+
$ gem install vkontakte_api --pre
|
16
16
|
```
|
17
17
|
|
18
18
|
## Использование
|
@@ -42,7 +42,6 @@ users = @vk.users.get(uids: [1, 2, 3])
|
|
42
42
|
users.first.uid # => 1
|
43
43
|
users.first.first_name # => "Павел"
|
44
44
|
users.first.last_name # => "Дуров"
|
45
|
-
users.first.online? # => true
|
46
45
|
|
47
46
|
# если метод, возвращающий массив, вызывается с блоком,
|
48
47
|
# то блок будет выполнен для каждого элемента,
|
@@ -91,10 +90,17 @@ redirect_to VkontakteApi.authorization_url(scope: [:friends, :photos])
|
|
91
90
|
@vk.is_app_user?
|
92
91
|
```
|
93
92
|
|
94
|
-
|
93
|
+
Клиент будет содержать id пользователя, авторизовавшего приложение; его можно получить с помощью метода `VkontakteApi::Client#user_id`:
|
94
|
+
|
95
|
+
``` ruby
|
96
|
+
@vk.user_id # => 123456
|
97
|
+
```
|
98
|
+
|
99
|
+
Также в этот момент полезно сохранить полученный токен (и, при необходимости, id пользователя) в БД либо в сессии, чтобы использовать их повторно:
|
95
100
|
|
96
101
|
``` ruby
|
97
102
|
current_user.token = @vk.token
|
103
|
+
current_user.vk_id = @vk.user_id
|
98
104
|
current_user.save
|
99
105
|
# позже
|
100
106
|
@vk = VkontakteApi::Client.new(current_user.token)
|
@@ -187,4 +193,4 @@ $ rails generate vkontakte_api:install
|
|
187
193
|
|
188
194
|
Если вы хотите поучаствовать в разработке проекта, форкните репозиторий, положите свои изменения в отдельную ветку и отправьте мне pull request.
|
189
195
|
|
190
|
-
`vkontakte_api` тестируется под MRI `1.8.7`, `1.9.2
|
196
|
+
`vkontakte_api` тестируется под MRI `1.8.7`, `1.9.2` и `1.9.3`. Если в одной из этих сред что-то работает неправильно, либо вообще не работает, то это следует считать багом, и написать об этом в [issues на Github](https://github.com/7even/vkontakte_api/issues).
|
data/lib/vkontakte_api/client.rb
CHANGED
@@ -4,14 +4,21 @@ module VkontakteApi
|
|
4
4
|
include Resolver
|
5
5
|
|
6
6
|
# An access token needed by authorized requests.
|
7
|
+
# @return [String]
|
7
8
|
attr_reader :token
|
9
|
+
# Current user id.
|
10
|
+
# @return [Integer]
|
11
|
+
attr_reader :user_id
|
8
12
|
|
9
13
|
# A new API client.
|
14
|
+
# If given an `OAuth2::AccessToken` instance, it extracts and keeps
|
15
|
+
# the token string and the user id; otherwise it just stores the given token.
|
10
16
|
# @param [String, OAuth2::AccessToken] token An access token.
|
11
17
|
def initialize(token = nil)
|
12
|
-
if token.respond_to?(:token)
|
18
|
+
if token.respond_to?(:token) && token.respond_to?(:params)
|
13
19
|
# token is an OAuth2::AccessToken
|
14
|
-
@token
|
20
|
+
@token = token.token
|
21
|
+
@user_id = token.params['user_id']
|
15
22
|
else
|
16
23
|
# token is a String or nil
|
17
24
|
@token = token
|
@@ -2,8 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe VkontakteApi::Client do
|
4
4
|
before(:each) do
|
5
|
+
@user_id = stub("User id")
|
5
6
|
@string_token = stub("Access token as a String")
|
6
|
-
@oauth2_token = stub("Access token as an OAuth2::AccessToken", :token => @string_token)
|
7
|
+
@oauth2_token = stub("Access token as an OAuth2::AccessToken", :token => @string_token, :params => {'user_id' => @user_id})
|
7
8
|
end
|
8
9
|
|
9
10
|
describe "#initialize" do
|
@@ -26,6 +27,7 @@ describe VkontakteApi::Client do
|
|
26
27
|
it "extracts the string token and uses it" do
|
27
28
|
client = VkontakteApi::Client.new(@oauth2_token)
|
28
29
|
client.token.should == @string_token
|
30
|
+
client.user_id.should == @user_id
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
data/vkontakte_api.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors = ['Vsevolod Romashov']
|
9
9
|
s.email = ['7@7vn.ru']
|
10
10
|
s.homepage = 'http://7even.github.com/vkontakte_api'
|
11
|
-
s.summary = %q{Ruby
|
12
|
-
s.description = %q{A transparent wrapper for API
|
11
|
+
s.summary = %q{Ruby wrapper for VKontakte API}
|
12
|
+
s.description = %q{A transparent wrapper for VKontakte API. Supports ruby-way naming of API methods (without method lists inside), optional authorization, files uploading, logging and any faraday-supported http adapter of your choice.}
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n")
|
15
15
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
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.rc2
|
5
5
|
prerelease: 4
|
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-07-
|
12
|
+
date: 2012-07-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -155,9 +155,9 @@ dependencies:
|
|
155
155
|
- - ! '>='
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
|
-
description: A transparent wrapper for API
|
159
|
-
|
160
|
-
and any faraday-supported http adapter of your choice
|
158
|
+
description: A transparent wrapper for VKontakte API. Supports ruby-way naming of
|
159
|
+
API methods (without method lists inside), optional authorization, files uploading,
|
160
|
+
logging and any faraday-supported http adapter of your choice.
|
161
161
|
email:
|
162
162
|
- 7@7vn.ru
|
163
163
|
executables: []
|
@@ -232,7 +232,7 @@ rubyforge_project:
|
|
232
232
|
rubygems_version: 1.8.23
|
233
233
|
signing_key:
|
234
234
|
specification_version: 3
|
235
|
-
summary: Ruby
|
235
|
+
summary: Ruby wrapper for VKontakte API
|
236
236
|
test_files:
|
237
237
|
- spec/integration_spec.rb
|
238
238
|
- spec/spec_helper.rb
|