livefyre 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTM0MzdkZWZkMGMxZDYzYzdmYzM3NWU5MTgyYTE5YzYzMjVjNTA5MA==
4
+ MWNjYjgzNjFhMWJlNjc4YWY1MjQ5OTcwYzlkNTBjMjdlMjc0ZjM5OA==
5
5
  data.tar.gz: !binary |-
6
- NDU1MDZjNTJlOTkwNzZjNWQ4NjAxNTNkNzNmZDY3ZGM1NGViYzhjMw==
6
+ MGNhN2I5NjY5NjVjMTczYWNiNjEwNmViOWZhOGIxMjNhNDkzNGQzMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NjRjMWViNDVmYzc1NGFhMmM4NTlkYzdmZmMwYjE2YzU1ZmIyZDI0ZjdkNzRm
10
- Nzg2ODAxZGViODFkMGUwNDEzMjM2MDQzOTZlNmIwOGU0ZTIzNmM1ZTI5MjFk
11
- Njg2NzQ0M2Q1ZDU0MmExNGQyNTMyMjYwNGNkYTE4NTJmYWFjYjM=
9
+ NTk5NDRmYzE2NzhmMTkzZTZlZTlmMTIzYzdhZDUxZTllZTFhZGM1ZDVjZWZj
10
+ MzhmYmI2ODZmNzA5YWRlYzQ3ZWZhZGYyZWQ4YmY1Njk3MmNkOWFjMThkM2Uw
11
+ YWJmMGFhOTY3NGUxNzYxZWMyYTRjYjRiMGY1ZDJiYmJhMzY5M2Q=
12
12
  data.tar.gz: !binary |-
13
- YzBkMTVjOTg4MTcwNTllMWJhNzZlNDIyODRhNjdkZjQ5ZDUzNjdmNzgyZGJk
14
- MGZjMTdmNmE0NjRhZGIzYTRiZmE0OTM4M2E1ZDcxNDU2ZDQ0ZTdkOWI3ZDI4
15
- MWM0ZGU1OGY5NmYzNjJmMTBiODliMjFmZmE0ZTc5Y2VmZGY5MDI=
13
+ MmRhNDlhN2UwNDc2MDI4MjFjYjRhZGNiM2UzYmFlMWIzOTNkZmEyMGE3Yjkw
14
+ Njc1MGYwNGZkZjQ1NThkZjg2OWViNTFlYmU3NzgwNjI1ZWU5OGM4ZjExYjg3
15
+ Y2NmYTgxYzZmM2JlM2E4ZjljMDY0MzE0ZTE0MTdmYjhmMTRlOGY=
data/README.md CHANGED
@@ -9,69 +9,71 @@ Add this line to your application's Gemfile:
9
9
 
10
10
  gem 'livefyre'
11
11
 
12
- And then execute:
13
-
14
- $ bundle
15
-
16
- Or install it yourself as:
12
+ Or install it yourself:
17
13
 
18
14
  $ gem install livefyre
19
15
 
20
16
  ## Usage
21
17
 
22
- Creating tokens:
23
-
24
- **Livefyre token:**
18
+ Instantiating a network object:
25
19
 
26
20
  ```ruby
27
- network = Livefyre.get_network(network_name, network_key)
28
- network.build_lf_token
21
+ network = Livefyre.get_network('network_name', 'network_key')
29
22
  ```
30
23
 
31
- **User auth token:**
24
+ Building a Livefyre token:
32
25
 
33
26
  ```ruby
34
- network = Livefyre.get_network(network_name, network_key)
35
- network.build_user_auth_token(user_id, display_name, expires)
27
+ network.build_livefyre_token
36
28
  ```
37
29
 
38
- **Collection meta token:**
30
+ Building a user auth token:
39
31
 
40
32
  ```ruby
41
- network = Livefyre.get_network(network_name, network_key)
42
-
43
- site = network.get_site(site_id, site_key)
44
- site.build_collection_meta_token(title, article_id, url, tags)
33
+ network.build_user_auth_token('user_id', 'display_name', expires)
45
34
  ```
46
35
 
47
36
  To validate a Livefyre token:
48
37
 
49
38
  ```ruby
50
- network = Livefyre.get_network(network_name, network_key)
51
- network.validate_livefyre_token(token)
39
+ network.validate_livefyre_token('lf_token')
52
40
  ```
53
41
 
54
42
  To send Livefyre a user sync url and then have Livefyre pull user data from that url:
55
43
 
56
44
  ```ruby
57
- network = Livefyre.get_network(network_name, network_key)
45
+ network.set_user_sync_url('url_template')
46
+ network.sync_user('user_id')
47
+ ```
48
+
49
+ Instantiating a site object:
50
+
51
+ ```ruby
52
+ site = network.get_site('site_id', 'site_key')
53
+ ```
58
54
 
59
- network.set_user_sync_url('http://thisisa.test.url/{id}/')
60
- network.sync_user(system)
55
+ Building a collection meta token:
56
+ *The 'tags' and stream' arguments are optional.*
57
+
58
+ ```ruby
59
+ site.build_collection_meta_token('title', 'article_id', 'url', 'tags', 'stream')
61
60
  ```
62
61
 
63
62
  To retrieve content collection data:
64
63
 
65
64
  ```ruby
66
- network = Livefyre.get_network(network_name, network_key)
65
+ site.get_collection_content('article_id')
66
+ ```
67
+
68
+ To get a content collection's id:
67
69
 
68
- site = network.get_site(site_id, site_key)
69
- site.get_collection_content(article_id)
70
+ ```ruby
71
+ site.get_collection_id('article_id')
70
72
  ```
71
73
 
72
74
  ## Documentation
73
75
 
74
- Located [here](answers.livefyre.com/libraries).
76
+ Located [here](http://answers.livefyre.com/developers/libraries).
75
77
 
76
78
  ## Contributing
77
79
 
data/lib/livefyre/core.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'base64'
2
+ require 'digest'
2
3
  require 'json'
3
4
  require 'jwt'
4
5
  require 'rest-client'
@@ -20,7 +21,7 @@ module Livefyre
20
21
  response =
21
22
  RestClient.post(
22
23
  "http://#{@network_name}",
23
- { actor_token: build_lf_token, pull_profile_url: url_template }
24
+ { actor_token: build_livefyre_token, pull_profile_url: url_template }
24
25
  )
25
26
  response.code == 204
26
27
  end
@@ -29,12 +30,12 @@ module Livefyre
29
30
  response =
30
31
  RestClient.post(
31
32
  "http://#{@network_name}/api/v3_0/user/#{user_id}/refresh",
32
- { lftoken: build_lf_token }
33
+ { lftoken: build_livefyre_token }
33
34
  )
34
35
  response.code == 200
35
36
  end
36
37
 
37
- def build_lf_token
38
+ def build_livefyre_token
38
39
  build_user_auth_token(DEFAULT_USER, DEFAULT_USER, DEFAULT_EXPIRES)
39
40
  end
40
41
 
@@ -68,16 +69,21 @@ module Livefyre
68
69
  @site_key = site_key
69
70
  end
70
71
 
71
- def build_collection_meta_token(title, article_id, url, tags, stream='')
72
+ def build_collection_meta_token(title, article_id, url, tags='', stream=nil)
72
73
  raise ArgumentError, 'provided url is not a valid url' if !uri?(url)
73
74
  raise ArgumentError, 'title length should be under 255 char' if title.length > 255
74
- JWT.encode({
75
- title: title,
76
- url: url,
77
- tags: tags,
78
- articleId: article_id,
79
- type: stream},
80
- @site_key)
75
+
76
+ collection_meta = { url: url, tags: tags, title: title }
77
+ checksum = Digest::MD5.new.update(collection_meta.to_json).hexdigest
78
+
79
+ collection_meta[:articleId] = article_id
80
+ collection_meta[:checksum] = checksum
81
+
82
+ if stream
83
+ collection_meta[:type] = stream
84
+ end
85
+
86
+ JWT.encode(collection_meta, @site_key)
81
87
  end
82
88
 
83
89
  def get_collection_content(article_id)
@@ -89,6 +95,13 @@ module Livefyre
89
95
  response.code == 200 ? JSON.parse(response) : nil
90
96
  end
91
97
 
98
+ def get_collection_id(article_id)
99
+ content = get_collection_content(article_id)
100
+ if content
101
+ content['collectionSettings']['collectionId']
102
+ end
103
+ end
104
+
92
105
  def uri?(string)
93
106
  uri = URI.parse(string)
94
107
  %w( http https ).include?(uri.scheme)
@@ -1,3 +1,3 @@
1
1
  module Livefyre
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -2,7 +2,7 @@ require 'livefyre'
2
2
 
3
3
  describe Livefyre::Network do
4
4
  before(:each) do
5
- @network = Livefyre.get_network('test.fyre.com', 'testkeytest')
5
+ @network = Livefyre.get_network('networkName', 'networkKey')
6
6
  end
7
7
 
8
8
  it 'should raise ArgumentError if url_template does not contain {id}' do
@@ -14,13 +14,13 @@ describe Livefyre::Network do
14
14
  end
15
15
 
16
16
  it 'should validate a livefyre token' do
17
- @network.validate_livefyre_token(@network.build_lf_token).should == true
17
+ @network.validate_livefyre_token(@network.build_livefyre_token).should == true
18
18
  end
19
19
  end
20
20
 
21
21
  describe Livefyre::Network::Site do
22
22
  before(:each) do
23
- @site = Livefyre.get_network('test.fyre.com', 'testkeytest').get_site("site", "secret")
23
+ @site = Livefyre.get_network('networkName', 'networkKey').get_site('siteId', "siteKey")
24
24
  end
25
25
 
26
26
  it 'should raise ArgumentError if url is not a valid url' do
@@ -30,4 +30,8 @@ describe Livefyre::Network::Site do
30
30
  it 'should raise ArgumentError if title is more than 255 characters' do
31
31
  expect{ @site.build_collection_meta_token('1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456', 'test', 'http://test.com', 'test') }.to raise_error(ArgumentError)
32
32
  end
33
+
34
+ it 'should return a collection meta token' do
35
+ expect{ @site.build_collection_meta_token('title', 'article_id', 'https://www.url.com', 'tags') }.to be_true
36
+ end
33
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livefyre
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Livefyre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-27 00:00:00.000000000 Z
11
+ date: 2014-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler