ezlinkedin 0.0.1 → 0.1.1
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.
- checksums.yaml +4 -4
- data/README.md +19 -8
- data/ezlinkedin.gemspec +1 -1
- data/lib/ezlinkedin/api/query_methods.rb +45 -14
- data/lib/ezlinkedin/api/update_methods.rb +1 -1
- data/lib/ezlinkedin/version.rb +1 -1
- data/spec/api_spec.rb +30 -30
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9279206e6ac5b5b444a29ee41b4c8e398807b6db
|
4
|
+
data.tar.gz: 687d9e2396ee7cd29b9c19e2dbd8aa75995c8dfc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f653c3d37e99e835e6e32bb9a5c94926dfc76e59960c9a2acfefc529af5d95162ee048db5402e18bce0d513b068794e0896604ebfee88a29c9a89ff467b6fec
|
7
|
+
data.tar.gz: 18dc467e7e54300d7e1ac240bd3c886b3082ee7d16bb7f98609fa8de8b0deef27b3c596513b24938ab22321c31f2096d0b4f29b11e33dfab68f8e41865d3714a
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
A simple way to make calls on Linkedin's API. NOTE: It is not yet completed and does not encompass all of the api at this time. It serves the purpose I made it for but I will continue to develop it.
|
4
4
|
|
5
|
-
This is heavily inspired and influenced by pengwynn
|
5
|
+
This is heavily inspired and influenced by the [pengwynn/linkedin](https://github.com/pengwynn/linkedin) gem. I was having issues with his gem though and there is very little documentation for using it so I decided to redo it myself in order to:
|
6
6
|
* Make it work for what I needed
|
7
7
|
* Add precise and useful documentation
|
8
8
|
* contribute a bit more robust ruby wrapper for Linkedin's API
|
@@ -25,15 +25,26 @@ Or install it yourself as:
|
|
25
25
|
|
26
26
|
## Usage
|
27
27
|
|
28
|
-
|
28
|
+
This is meant to be used alongside omniauth. Obtain access tokens from omniauth authentication and then use them to make api calls.
|
29
29
|
|
30
|
-
|
30
|
+
```ruby
|
31
|
+
require 'ezlinkedin'
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
# Create a client
|
34
|
+
linkedin = EzLinkedin::Client.new("API KEY", "SECRET KEY", options) # options are the typical OAuth consumer options
|
35
|
+
linkedin.authorize("access_token", "access_token_secret") # tokens obtained from omniauth
|
36
|
+
|
37
|
+
linkedin.profile(id: 1234, fields: ['name', 'email']
|
38
|
+
linkedin.connections(count: 30)
|
39
|
+
linkedin.network_updates(types: [:shar, :prfx, :conn], count: 50)
|
40
|
+
linkedin.post_share({:comment => "I'm a comment",
|
41
|
+
:content => { :title => "A title!",
|
42
|
+
:description => "A description",
|
43
|
+
:submitted_url => "http...",
|
44
|
+
:submitted_image_url => "http..." },
|
45
|
+
:visibility => { :code => "anyone"} })
|
46
|
+
```
|
47
|
+
Currently, one can post shares, retrieve updates, user profile, and connections.
|
37
48
|
|
38
49
|
## Contributing
|
39
50
|
|
data/ezlinkedin.gemspec
CHANGED
@@ -27,6 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency "rspec", '~> 2.6'
|
28
28
|
spec.add_development_dependency 'guard'
|
29
29
|
spec.add_development_dependency 'guard-rspec'
|
30
|
-
spec.add_development_dependency '
|
30
|
+
spec.add_development_dependency 'rb-inotify'
|
31
31
|
spec.add_development_dependency "webmock", '~> 1.11.0'
|
32
32
|
end
|
@@ -2,13 +2,13 @@ module EzLinkedin
|
|
2
2
|
module Api
|
3
3
|
|
4
4
|
module QueryMethods
|
5
|
-
|
6
|
-
#
|
5
|
+
|
6
|
+
#
|
7
7
|
# Retrieve a certain profile depending on the options passed in.
|
8
8
|
# @param options={} [Hash] can be an array of fields as strings and an id,
|
9
|
-
# and a url to a public profile. This can also contain request
|
9
|
+
# and a url to a public profile. This can also contain request
|
10
10
|
# headers
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# @return [Mash] a Mash hash representing the found profile
|
13
13
|
def profile(options={})
|
14
14
|
path = person_path(options)
|
@@ -16,30 +16,45 @@ module EzLinkedin
|
|
16
16
|
end
|
17
17
|
|
18
18
|
|
19
|
-
#
|
19
|
+
#
|
20
20
|
# Retrieve the authenticated user's connections
|
21
21
|
# @param options={} [Hash] pass in fields and/or a count
|
22
|
-
#
|
22
|
+
#
|
23
23
|
# @return [Mash] Mash hash of connections
|
24
24
|
def connections(options={})
|
25
25
|
path = "#{person_path(options)}/connections"
|
26
26
|
make_query(path, options, true)
|
27
27
|
end
|
28
28
|
|
29
|
-
#
|
29
|
+
#
|
30
30
|
# Retrieve the user's social feed
|
31
31
|
# @param options={} [Hash] visit Linkedin's api to
|
32
|
-
# see possible options. it will default to an
|
33
|
-
# aggregated feed unless :scope => 'self'.
|
34
|
-
# :types => [:shar, :recu, :apps]
|
35
|
-
# :count => 5
|
36
|
-
#
|
37
|
-
# @return [Mash] Mash hash of updates
|
32
|
+
# see possible options. it will default to an
|
33
|
+
# aggregated feed unless :scope => 'self'.
|
34
|
+
# :types => [:shar, :recu, :apps]
|
35
|
+
# :count => 5
|
36
|
+
#
|
37
|
+
# @return [Mash] Mash hash of updates
|
38
38
|
def network_updates(options={})
|
39
39
|
path = "#{person_path(options)}/network/updates"
|
40
40
|
make_query(path, options, false)
|
41
41
|
end
|
42
42
|
|
43
|
+
|
44
|
+
#
|
45
|
+
# Do a company search based on id, email, or universal-name
|
46
|
+
# @param options={} [Hash] parameters to search by, includes:
|
47
|
+
# id, universal-name(pass it in as :name), email-domain(:domain).
|
48
|
+
# options can also include a string array of fields to return. See
|
49
|
+
# the linkedin api for available fields
|
50
|
+
#
|
51
|
+
# @return [type] [description]
|
52
|
+
def company(options={})
|
53
|
+
path = company_path(options)
|
54
|
+
fields = options.include?(:fields)
|
55
|
+
make_query(path, options, fields)
|
56
|
+
end
|
57
|
+
|
43
58
|
private
|
44
59
|
|
45
60
|
def person_path(options)
|
@@ -53,7 +68,23 @@ module EzLinkedin
|
|
53
68
|
end
|
54
69
|
end
|
55
70
|
|
56
|
-
|
71
|
+
def company_path(options)
|
72
|
+
path = "/companies"
|
73
|
+
id = options.delete(:id)
|
74
|
+
name = options.delete(:name)
|
75
|
+
domain = options.delete(:domain)
|
76
|
+
if id && name
|
77
|
+
path += "::(#{id},universal-name=#{CGI.escape(name)})"
|
78
|
+
elsif id
|
79
|
+
path += "/#{id}"
|
80
|
+
elsif name
|
81
|
+
path += "/universal-name=#{name}"
|
82
|
+
elsif domain
|
83
|
+
path += "?email-domain=#{domain}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
#
|
57
88
|
# create a valid path to make a restful request
|
58
89
|
# @param path [String] current path
|
59
90
|
# @param options [Hash] set of options
|
data/lib/ezlinkedin/version.rb
CHANGED
data/spec/api_spec.rb
CHANGED
@@ -99,36 +99,36 @@ describe EzLinkedin::Api do
|
|
99
99
|
# response.code.should == "201"
|
100
100
|
# end
|
101
101
|
#
|
102
|
-
|
103
|
-
#
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
#
|
121
|
-
#
|
122
|
-
|
123
|
-
#
|
124
|
-
#
|
125
|
-
#
|
126
|
-
#
|
127
|
-
#
|
128
|
-
#
|
129
|
-
#
|
130
|
-
#
|
131
|
-
|
102
|
+
context "Company API" do
|
103
|
+
# use_vcr_cassette
|
104
|
+
|
105
|
+
it "should be able to view a company profile" do
|
106
|
+
stub_request(:get, "https://api.linkedin.com/v1/companies/1586").to_return(:body => "{}")
|
107
|
+
client.company(:id => 1586).should be_an_instance_of(EzLinkedin::Mash)
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should be able to view a company by universal name" do
|
111
|
+
stub_request(:get, "https://api.linkedin.com/v1/companies/universal-name=acme").to_return(:body => "{}")
|
112
|
+
client.company(:name => 'acme').should be_an_instance_of(EzLinkedin::Mash)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should be able to view a company by e-mail domain" do
|
116
|
+
stub_request(:get, "https://api.linkedin.com/v1/companies?email-domain=acme.com").to_return(:body => "{}")
|
117
|
+
client.company(:domain => 'acme.com').should be_an_instance_of(EzLinkedin::Mash)
|
118
|
+
end
|
119
|
+
|
120
|
+
# it "should load correct company data" do
|
121
|
+
# client.company(:id => 1586).name.should == "Amazon"
|
122
|
+
|
123
|
+
# data = client.company(:id => 1586, :fields => %w{ id name industry locations:(address:(city state country-code) is-headquarters) employee-count-range })
|
124
|
+
# data.id.should == 1586
|
125
|
+
# data.name.should == "Amazon"
|
126
|
+
# data.employee_count_range.name.should == "10001+"
|
127
|
+
# data.industry.should == "Internet"
|
128
|
+
# data.locations.all[0].address.city.should == "Seattle"
|
129
|
+
# data.locations.all[0].is_headquarters.should == true
|
130
|
+
# end
|
131
|
+
end
|
132
132
|
|
133
133
|
# context "Group API" do
|
134
134
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ezlinkedin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akonwi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: rb-inotify
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - '>='
|