linkedin 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/linked_in/client.rb +81 -5
- data/lib/linked_in/network.rb +7 -0
- data/lib/linked_in/people.rb +10 -0
- data/lib/linked_in/update.rb +11 -0
- data/lib/linkedin.rb +6 -0
- data/test/client_test.rb +55 -0
- data/test/fixtures/blank.xml +0 -0
- data/test/fixtures/network_statuses.xml +279 -0
- data/test/fixtures/picture_updates.xml +117 -0
- data/test/fixtures/search.xml +538 -0
- data/test/fixtures/status.xml +2 -0
- metadata +19 -1
data/Rakefile
CHANGED
@@ -15,6 +15,7 @@ begin
|
|
15
15
|
|
16
16
|
gem.add_dependency('oauth', '~> 0.3.5')
|
17
17
|
gem.add_dependency('roxml', '~> 3.1.3')
|
18
|
+
gem.add_dependency('crack', '~> 0.1.4')
|
18
19
|
|
19
20
|
gem.add_development_dependency('thoughtbot-shoulda', '>= 2.10.1')
|
20
21
|
gem.add_development_dependency('jnunemaker-matchy', '0.4.0')
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/lib/linked_in/client.rb
CHANGED
@@ -51,6 +51,20 @@ module LinkedIn
|
|
51
51
|
response.body
|
52
52
|
end
|
53
53
|
|
54
|
+
def put(path, options={})
|
55
|
+
path = "/v1#{path}"
|
56
|
+
response = access_token.put(path, options)
|
57
|
+
raise_errors(response)
|
58
|
+
response
|
59
|
+
end
|
60
|
+
|
61
|
+
def delete(path, options={})
|
62
|
+
path = "/v1#{path}"
|
63
|
+
response = access_token.delete(path, options)
|
64
|
+
raise_errors(response)
|
65
|
+
response
|
66
|
+
end
|
67
|
+
|
54
68
|
|
55
69
|
def profile(options={})
|
56
70
|
|
@@ -81,6 +95,42 @@ module LinkedIn
|
|
81
95
|
Connections.from_xml(get(path)).profiles
|
82
96
|
end
|
83
97
|
|
98
|
+
def search(options={})
|
99
|
+
path = "/people"
|
100
|
+
options = {:keywords => options} if options.is_a?(String)
|
101
|
+
options = format_options_for_query(options)
|
102
|
+
|
103
|
+
People.from_xml(get(to_uri(path, options)))
|
104
|
+
end
|
105
|
+
|
106
|
+
def current_status
|
107
|
+
path = "/people/~/current-status"
|
108
|
+
Crack::XML.parse(get(path))['current_status']
|
109
|
+
end
|
110
|
+
|
111
|
+
def update_status(text)
|
112
|
+
path = "/people/~/current-status"
|
113
|
+
put(path, status_to_xml(text))
|
114
|
+
end
|
115
|
+
|
116
|
+
def clear_status
|
117
|
+
path = "/people/~/current-status"
|
118
|
+
delete(path).code
|
119
|
+
end
|
120
|
+
|
121
|
+
def network_statuses(options={})
|
122
|
+
options[:type] = 'STAT'
|
123
|
+
network_updates(options)
|
124
|
+
end
|
125
|
+
|
126
|
+
def network_updates(options={})
|
127
|
+
path = "/people/~/network"
|
128
|
+
Network.from_xml(get(to_uri(path, options)))
|
129
|
+
end
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
84
134
|
# helpful in making authenticated calls and writing the
|
85
135
|
# raw xml to a fixture file
|
86
136
|
def write_fixture(path, filename)
|
@@ -100,15 +150,37 @@ module LinkedIn
|
|
100
150
|
raise Unavailable, "(#{response.code}): #{response.message}"
|
101
151
|
end
|
102
152
|
|
103
|
-
if response.body.include?("<error>")
|
153
|
+
if response.body && response.body.include?("<error>")
|
104
154
|
error = LinkedIn::Error.from_xml(response.body)
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
155
|
+
Raise LinkedInError, "(#{error.status}): #{error.code} - #{error.message}"
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def format_options_for_query(opts)
|
160
|
+
opts.keys.each do |key|
|
161
|
+
value = opts.delete(key)
|
162
|
+
value = value.join("+") if value.is_a?(Array)
|
163
|
+
value = value.gsub(" ", "+") if value.is_a?(String)
|
164
|
+
opts[key.to_s.gsub("_","-")] = value
|
109
165
|
end
|
166
|
+
opts
|
167
|
+
end
|
168
|
+
|
169
|
+
def to_query(options)
|
170
|
+
options.inject([]) do |collection, opt|
|
171
|
+
collection << "#{opt[0]}=#{opt[1]}"
|
172
|
+
collection
|
173
|
+
end * '&'
|
110
174
|
end
|
175
|
+
|
176
|
+
def to_uri(path, options)
|
177
|
+
uri = URI.parse(path)
|
111
178
|
|
179
|
+
if options && options != {}
|
180
|
+
uri.query = to_query(options)
|
181
|
+
end
|
182
|
+
uri.to_s
|
183
|
+
end
|
112
184
|
|
113
185
|
def person_path(options)
|
114
186
|
path = "/people/"
|
@@ -123,6 +195,10 @@ module LinkedIn
|
|
123
195
|
end
|
124
196
|
end
|
125
197
|
|
198
|
+
def status_to_xml(status)
|
199
|
+
%Q{<?xml version="1.0" encoding="UTF-8"?>
|
200
|
+
<current-status>#{status}</current-status>}
|
201
|
+
end
|
126
202
|
|
127
203
|
|
128
204
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module LinkedIn
|
2
|
+
class People
|
3
|
+
include ROXML
|
4
|
+
xml_convention {|val| val.gsub("_","-") }
|
5
|
+
xml_reader :total, :as => Integer, :from => "@total"
|
6
|
+
xml_reader :start, :as => Integer, :from => "@start"
|
7
|
+
xml_reader :count, :as => Integer, :from => "@count"
|
8
|
+
xml_reader :profiles, :as => [Profile], :from => 'person'
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module LinkedIn
|
2
|
+
class Update
|
3
|
+
include ROXML
|
4
|
+
xml_convention {|val| val.gsub("_","-") }
|
5
|
+
xml_reader :timestamp, :as => Integer
|
6
|
+
xml_reader :update_key
|
7
|
+
xml_reader :update_type
|
8
|
+
xml_reader :profile, :as => Profile, :from => 'update-content/person'
|
9
|
+
xml_reader :is_commentable?
|
10
|
+
end
|
11
|
+
end
|
data/lib/linkedin.rb
CHANGED
@@ -7,6 +7,9 @@ require 'oauth'
|
|
7
7
|
gem 'roxml', '~> 3.1.3'
|
8
8
|
require 'roxml'
|
9
9
|
|
10
|
+
gem 'crack', '~> 0.1.4'
|
11
|
+
require 'crack'
|
12
|
+
|
10
13
|
require 'cgi'
|
11
14
|
|
12
15
|
module LinkedIn
|
@@ -38,5 +41,8 @@ require File.join(directory, 'linked_in', 'education')
|
|
38
41
|
require File.join(directory, 'linked_in', 'location')
|
39
42
|
require File.join(directory, 'linked_in', 'position')
|
40
43
|
require File.join(directory, 'linked_in', 'profile')
|
44
|
+
require File.join(directory, 'linked_in', 'update')
|
45
|
+
require File.join(directory, 'linked_in', 'network')
|
46
|
+
require File.join(directory, 'linked_in', 'people')
|
41
47
|
require File.join(directory, 'linked_in', 'connections')
|
42
48
|
require File.join(directory, 'linked_in', 'client')
|
data/test/client_test.rb
CHANGED
@@ -44,6 +44,61 @@ class ClientTest < Test::Unit::TestCase
|
|
44
44
|
cons.size.should == 146
|
45
45
|
cons.last.last_name.should == 'Yuchnewicz'
|
46
46
|
end
|
47
|
+
|
48
|
+
should "perform a search by keyword" do
|
49
|
+
stub_get("/v1/people?keywords=github", "search.xml")
|
50
|
+
results = @linkedin.search(:keywords => 'github')
|
51
|
+
results.start == 0
|
52
|
+
results.count == 10
|
53
|
+
results.profiles.first.first_name.should == 'Zach'
|
54
|
+
results.profiles.first.last_name.should == 'Inglis'
|
55
|
+
end
|
56
|
+
|
57
|
+
should "perform a search by multiple keywords" do
|
58
|
+
stub_get("/v1/people?keywords=ruby+rails", "search.xml")
|
59
|
+
results = @linkedin.search(:keywords => ["ruby", "rails"])
|
60
|
+
results.start == 0
|
61
|
+
results.count == 10
|
62
|
+
results.profiles.first.first_name.should == 'Zach'
|
63
|
+
results.profiles.first.last_name.should == 'Inglis'
|
64
|
+
end
|
65
|
+
|
66
|
+
should "perform a search by name" do
|
67
|
+
stub_get("/v1/people?name=Zach+Inglis", "search.xml")
|
68
|
+
results = @linkedin.search(:name => "Zach Inglis")
|
69
|
+
results.start == 0
|
70
|
+
results.count == 10
|
71
|
+
results.profiles.first.first_name.should == 'Zach'
|
72
|
+
results.profiles.first.last_name.should == 'Inglis'
|
73
|
+
end
|
74
|
+
|
75
|
+
should "update a user's current status" do
|
76
|
+
stub_put("/v1/people/~/current-status", "blank.xml")
|
77
|
+
@linkedin.update_status("Testing out the LinkedIn API")
|
78
|
+
end
|
79
|
+
|
80
|
+
should "clear a user's current status" do
|
81
|
+
stub_delete("/v1/people/~/current-status", "blank.xml")
|
82
|
+
@linkedin.clear_status
|
83
|
+
end
|
84
|
+
|
85
|
+
should "retrieve the authenticated user's current status" do
|
86
|
+
stub_get("/v1/people/~/current-status", "status.xml")
|
87
|
+
@linkedin.current_status.should == "New blog post: What makes a good API wrapper? http://wynnnetherland.com/2009/11/what-makes-a-good-api-wrapper/"
|
88
|
+
end
|
89
|
+
|
90
|
+
should "retrieve status updates for the authenticated user's network" do
|
91
|
+
stub_get("/v1/people/~/network?type=STAT", "network_statuses.xml")
|
92
|
+
stats = @linkedin.network_statuses
|
93
|
+
stats.updates.first.profile.first_name.should == 'Vahid'
|
94
|
+
end
|
95
|
+
|
96
|
+
should "retrieve network updates" do
|
97
|
+
stub_get("/v1/people/~/network?type=PICT", "picture_updates.xml")
|
98
|
+
stats = @linkedin.network_updates(:type => "PICT")
|
99
|
+
stats.updates.size.should == 4
|
100
|
+
stats.updates.last.profile.headline.should == "Creative Director for Intridea"
|
101
|
+
end
|
47
102
|
|
48
103
|
end
|
49
104
|
|
File without changes
|
@@ -0,0 +1,279 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<network>
|
3
|
+
<network-stats total="2">
|
4
|
+
<property key="degree-1-count">146</property>
|
5
|
+
<property key="degree-2-count">16998</property>
|
6
|
+
</network-stats>
|
7
|
+
<updates total="122" start="0" count="10">
|
8
|
+
<update>
|
9
|
+
<timestamp>1259179809524</timestamp>
|
10
|
+
<update-key>STAT-19408512-118-*1</update-key>
|
11
|
+
<update-type>STAT</update-type>
|
12
|
+
<update-content>
|
13
|
+
<person>
|
14
|
+
<id>19408512</id>
|
15
|
+
<first-name>Vahid</first-name>
|
16
|
+
<last-name>Behzadi (vahid@cybercoders.com)</last-name>
|
17
|
+
<headline>Executive Recruiter at CyberCoders - Recruiting Manager</headline>
|
18
|
+
<current-status>said: Etsy Dallas Jingle Bash – Shop local for the Holidays http://ping.fm/0P80n(I+live+in+Dallas)</current-status>
|
19
|
+
<api-standard-profile-request>
|
20
|
+
<url>http://api.linkedin.com/v1/people/Hz_9mRaUxh:full</url>
|
21
|
+
<headers total="1">
|
22
|
+
<http-header>
|
23
|
+
<name>x-li-auth-token</name>
|
24
|
+
<value>name:EPo9</value>
|
25
|
+
</http-header>
|
26
|
+
</headers>
|
27
|
+
</api-standard-profile-request>
|
28
|
+
<site-standard-profile-request>
|
29
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=19408512&authToken=EPo9&authType=name</url>
|
30
|
+
</site-standard-profile-request>
|
31
|
+
</person>
|
32
|
+
</update-content>
|
33
|
+
<is-commentable>true</is-commentable>
|
34
|
+
</update>
|
35
|
+
<update>
|
36
|
+
<timestamp>1259134444850</timestamp>
|
37
|
+
<update-key>STAT-10801267-18-*1</update-key>
|
38
|
+
<update-type>STAT</update-type>
|
39
|
+
<update-content>
|
40
|
+
<person>
|
41
|
+
<id>10801267</id>
|
42
|
+
<first-name>Michael</first-name>
|
43
|
+
<last-name>Bleigh</last-name>
|
44
|
+
<headline>Creative Director for Intridea</headline>
|
45
|
+
<current-status>Hate it when I get the ideas for four or five lengthy blog posts but don't have time to write any of them.</current-status>
|
46
|
+
<api-standard-profile-request>
|
47
|
+
<url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
|
48
|
+
<headers total="1">
|
49
|
+
<http-header>
|
50
|
+
<name>x-li-auth-token</name>
|
51
|
+
<value>name:BcLL</value>
|
52
|
+
</http-header>
|
53
|
+
</headers>
|
54
|
+
</api-standard-profile-request>
|
55
|
+
<site-standard-profile-request>
|
56
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=10801267&authToken=BcLL&authType=name</url>
|
57
|
+
</site-standard-profile-request>
|
58
|
+
</person>
|
59
|
+
</update-content>
|
60
|
+
<is-commentable>true</is-commentable>
|
61
|
+
</update>
|
62
|
+
<update>
|
63
|
+
<timestamp>1259118559812</timestamp>
|
64
|
+
<update-key>STAT-10801267-17-*1</update-key>
|
65
|
+
<update-type>STAT</update-type>
|
66
|
+
<update-content>
|
67
|
+
<person>
|
68
|
+
<id>10801267</id>
|
69
|
+
<first-name>Michael</first-name>
|
70
|
+
<last-name>Bleigh</last-name>
|
71
|
+
<headline>Creative Director for Intridea</headline>
|
72
|
+
<current-status>If you aren't exposing it to change in your app's UI, why do you need it in the database at all? Ex. currencies, roles, countries...</current-status>
|
73
|
+
<api-standard-profile-request>
|
74
|
+
<url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
|
75
|
+
<headers total="1">
|
76
|
+
<http-header>
|
77
|
+
<name>x-li-auth-token</name>
|
78
|
+
<value>name:BcLL</value>
|
79
|
+
</http-header>
|
80
|
+
</headers>
|
81
|
+
</api-standard-profile-request>
|
82
|
+
<site-standard-profile-request>
|
83
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=10801267&authToken=BcLL&authType=name</url>
|
84
|
+
</site-standard-profile-request>
|
85
|
+
</person>
|
86
|
+
</update-content>
|
87
|
+
<is-commentable>true</is-commentable>
|
88
|
+
</update>
|
89
|
+
<update>
|
90
|
+
<timestamp>1259104574686</timestamp>
|
91
|
+
<update-key>STAT-19408512-116-*1</update-key>
|
92
|
+
<update-type>STAT</update-type>
|
93
|
+
<update-content>
|
94
|
+
<person>
|
95
|
+
<id>19408512</id>
|
96
|
+
<first-name>Vahid</first-name>
|
97
|
+
<last-name>Behzadi (vahid@cybercoders.com)</last-name>
|
98
|
+
<headline>Executive Recruiter at CyberCoders - Recruiting Manager</headline>
|
99
|
+
<current-status>said: Nokia – The story of an Awesomely Innovative Company getting Out-innovated http://ping.fm/yTGmL</current-status>
|
100
|
+
<api-standard-profile-request>
|
101
|
+
<url>http://api.linkedin.com/v1/people/Hz_9mRaUxh:full</url>
|
102
|
+
<headers total="1">
|
103
|
+
<http-header>
|
104
|
+
<name>x-li-auth-token</name>
|
105
|
+
<value>name:EPo9</value>
|
106
|
+
</http-header>
|
107
|
+
</headers>
|
108
|
+
</api-standard-profile-request>
|
109
|
+
<site-standard-profile-request>
|
110
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=19408512&authToken=EPo9&authType=name</url>
|
111
|
+
</site-standard-profile-request>
|
112
|
+
</person>
|
113
|
+
</update-content>
|
114
|
+
<is-commentable>true</is-commentable>
|
115
|
+
</update>
|
116
|
+
<update>
|
117
|
+
<timestamp>1259094708174</timestamp>
|
118
|
+
<update-key>STAT-16571819-52-*1</update-key>
|
119
|
+
<update-type>STAT</update-type>
|
120
|
+
<update-content>
|
121
|
+
<person>
|
122
|
+
<id>16571819</id>
|
123
|
+
<first-name>Brian</first-name>
|
124
|
+
<last-name>Blankenship</last-name>
|
125
|
+
<headline>Interactive Creative Director at Balcom Agency</headline>
|
126
|
+
<current-status>Thanks @consuro for keeping @balcomagency humming today!</current-status>
|
127
|
+
<api-standard-profile-request>
|
128
|
+
<url>http://api.linkedin.com/v1/people/-5o6E7ti32:full</url>
|
129
|
+
<headers total="1">
|
130
|
+
<http-header>
|
131
|
+
<name>x-li-auth-token</name>
|
132
|
+
<value>name:NZ8c</value>
|
133
|
+
</http-header>
|
134
|
+
</headers>
|
135
|
+
</api-standard-profile-request>
|
136
|
+
<site-standard-profile-request>
|
137
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=16571819&authToken=NZ8c&authType=name</url>
|
138
|
+
</site-standard-profile-request>
|
139
|
+
</person>
|
140
|
+
</update-content>
|
141
|
+
<is-commentable>true</is-commentable>
|
142
|
+
</update>
|
143
|
+
<update>
|
144
|
+
<timestamp>1259094344698</timestamp>
|
145
|
+
<update-key>STAT-16571819-50-*1</update-key>
|
146
|
+
<update-type>STAT</update-type>
|
147
|
+
<update-content>
|
148
|
+
<person>
|
149
|
+
<id>16571819</id>
|
150
|
+
<first-name>Brian</first-name>
|
151
|
+
<last-name>Blankenship</last-name>
|
152
|
+
<headline>Interactive Creative Director at Balcom Agency</headline>
|
153
|
+
<current-status>Balcomites @balcomagency @chiphanna @sanichols etc buzz me via dm on Twit. Can't access anything else. Net still down?</current-status>
|
154
|
+
<api-standard-profile-request>
|
155
|
+
<url>http://api.linkedin.com/v1/people/-5o6E7ti32:full</url>
|
156
|
+
<headers total="1">
|
157
|
+
<http-header>
|
158
|
+
<name>x-li-auth-token</name>
|
159
|
+
<value>name:NZ8c</value>
|
160
|
+
</http-header>
|
161
|
+
</headers>
|
162
|
+
</api-standard-profile-request>
|
163
|
+
<site-standard-profile-request>
|
164
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=16571819&authToken=NZ8c&authType=name</url>
|
165
|
+
</site-standard-profile-request>
|
166
|
+
</person>
|
167
|
+
</update-content>
|
168
|
+
<is-commentable>true</is-commentable>
|
169
|
+
</update>
|
170
|
+
<update>
|
171
|
+
<timestamp>1259083650707</timestamp>
|
172
|
+
<update-key>STAT-3429308-40-*1</update-key>
|
173
|
+
<update-type>STAT</update-type>
|
174
|
+
<update-content>
|
175
|
+
<person>
|
176
|
+
<id>3429308</id>
|
177
|
+
<first-name>Daniel</first-name>
|
178
|
+
<last-name>Lathrop</last-name>
|
179
|
+
<headline>Digital Strategist at InvestigateWest</headline>
|
180
|
+
<current-status>My niece texted so much she broke her phone's keyboard. Now she has to text 'the old fashioned way.</current-status>
|
181
|
+
<api-standard-profile-request>
|
182
|
+
<url>http://api.linkedin.com/v1/people/1bJ9lghNE-:full</url>
|
183
|
+
<headers total="1">
|
184
|
+
<http-header>
|
185
|
+
<name>x-li-auth-token</name>
|
186
|
+
<value>name:FBW_</value>
|
187
|
+
</http-header>
|
188
|
+
</headers>
|
189
|
+
</api-standard-profile-request>
|
190
|
+
<site-standard-profile-request>
|
191
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=3429308&authToken=FBW_&authType=name</url>
|
192
|
+
</site-standard-profile-request>
|
193
|
+
</person>
|
194
|
+
</update-content>
|
195
|
+
<is-commentable>true</is-commentable>
|
196
|
+
</update>
|
197
|
+
<update>
|
198
|
+
<timestamp>1259080455770</timestamp>
|
199
|
+
<update-key>STAT-19408512-114-*1</update-key>
|
200
|
+
<update-type>STAT</update-type>
|
201
|
+
<update-content>
|
202
|
+
<person>
|
203
|
+
<id>19408512</id>
|
204
|
+
<first-name>Vahid</first-name>
|
205
|
+
<last-name>Behzadi (vahid@cybercoders.com)</last-name>
|
206
|
+
<headline>Executive Recruiter at CyberCoders - Recruiting Manager</headline>
|
207
|
+
<current-status>said: Eliot Spitzer, Now More Than Ever http://ping.fm/vUB3V</current-status>
|
208
|
+
<api-standard-profile-request>
|
209
|
+
<url>http://api.linkedin.com/v1/people/Hz_9mRaUxh:full</url>
|
210
|
+
<headers total="1">
|
211
|
+
<http-header>
|
212
|
+
<name>x-li-auth-token</name>
|
213
|
+
<value>name:EPo9</value>
|
214
|
+
</http-header>
|
215
|
+
</headers>
|
216
|
+
</api-standard-profile-request>
|
217
|
+
<site-standard-profile-request>
|
218
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=19408512&authToken=EPo9&authType=name</url>
|
219
|
+
</site-standard-profile-request>
|
220
|
+
</person>
|
221
|
+
</update-content>
|
222
|
+
<is-commentable>true</is-commentable>
|
223
|
+
</update>
|
224
|
+
<update>
|
225
|
+
<timestamp>1259042672786</timestamp>
|
226
|
+
<update-key>STAT-10801267-16-*1</update-key>
|
227
|
+
<update-type>STAT</update-type>
|
228
|
+
<update-content>
|
229
|
+
<person>
|
230
|
+
<id>10801267</id>
|
231
|
+
<first-name>Michael</first-name>
|
232
|
+
<last-name>Bleigh</last-name>
|
233
|
+
<headline>Creative Director for Intridea</headline>
|
234
|
+
<current-status>Anyone have an available couch.io or mongohq invite or code?</current-status>
|
235
|
+
<api-standard-profile-request>
|
236
|
+
<url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
|
237
|
+
<headers total="1">
|
238
|
+
<http-header>
|
239
|
+
<name>x-li-auth-token</name>
|
240
|
+
<value>name:BcLL</value>
|
241
|
+
</http-header>
|
242
|
+
</headers>
|
243
|
+
</api-standard-profile-request>
|
244
|
+
<site-standard-profile-request>
|
245
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=10801267&authToken=BcLL&authType=name</url>
|
246
|
+
</site-standard-profile-request>
|
247
|
+
</person>
|
248
|
+
</update-content>
|
249
|
+
<is-commentable>true</is-commentable>
|
250
|
+
</update>
|
251
|
+
<update>
|
252
|
+
<timestamp>1259019816599</timestamp>
|
253
|
+
<update-key>STAT-16571819-49-*1</update-key>
|
254
|
+
<update-type>STAT</update-type>
|
255
|
+
<update-content>
|
256
|
+
<person>
|
257
|
+
<id>16571819</id>
|
258
|
+
<first-name>Brian</first-name>
|
259
|
+
<last-name>Blankenship</last-name>
|
260
|
+
<headline>Interactive Creative Director at Balcom Agency</headline>
|
261
|
+
<current-status>RT @ULTRACEPT Many businesses unprepared for flu-related absences | Top Stories | Star-Telegram.com: http://bit.ly/6CqJ6T via @addthis</current-status>
|
262
|
+
<api-standard-profile-request>
|
263
|
+
<url>http://api.linkedin.com/v1/people/-5o6E7ti32:full</url>
|
264
|
+
<headers total="1">
|
265
|
+
<http-header>
|
266
|
+
<name>x-li-auth-token</name>
|
267
|
+
<value>name:NZ8c</value>
|
268
|
+
</http-header>
|
269
|
+
</headers>
|
270
|
+
</api-standard-profile-request>
|
271
|
+
<site-standard-profile-request>
|
272
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=16571819&authToken=NZ8c&authType=name</url>
|
273
|
+
</site-standard-profile-request>
|
274
|
+
</person>
|
275
|
+
</update-content>
|
276
|
+
<is-commentable>true</is-commentable>
|
277
|
+
</update>
|
278
|
+
</updates>
|
279
|
+
</network>
|
@@ -0,0 +1,117 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<network>
|
3
|
+
<network-stats total="2">
|
4
|
+
<property key="degree-1-count">146</property>
|
5
|
+
<property key="degree-2-count">17000</property>
|
6
|
+
</network-stats>
|
7
|
+
<updates total="4">
|
8
|
+
<update>
|
9
|
+
<timestamp>1258714582136</timestamp>
|
10
|
+
<update-key>PICU-6043885-ffe88342*3bee0*3453f*38ffb*3460fde2eb011-*1</update-key>
|
11
|
+
<update-type>PICU</update-type>
|
12
|
+
<update-content>
|
13
|
+
<person>
|
14
|
+
<id>6043885</id>
|
15
|
+
<first-name>Darrin</first-name>
|
16
|
+
<last-name>Tvrdy, PMP</last-name>
|
17
|
+
<headline>Project Manager / Business Systems Analyst IV at Hewlett-Packard</headline>
|
18
|
+
<picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/1/000/03d/0d8/2c32744.jpg</picture-url>
|
19
|
+
<api-standard-profile-request>
|
20
|
+
<url>http://api.linkedin.com/v1/people/xNOObJb-yZ:full</url>
|
21
|
+
<headers total="1">
|
22
|
+
<http-header>
|
23
|
+
<name>x-li-auth-token</name>
|
24
|
+
<value>name:5DNj</value>
|
25
|
+
</http-header>
|
26
|
+
</headers>
|
27
|
+
</api-standard-profile-request>
|
28
|
+
<site-standard-profile-request>
|
29
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=6043885&authToken=5DNj&authType=name</url>
|
30
|
+
</site-standard-profile-request>
|
31
|
+
</person>
|
32
|
+
</update-content>
|
33
|
+
<is-commentable>true</is-commentable>
|
34
|
+
</update>
|
35
|
+
<update>
|
36
|
+
<timestamp>1258476132751</timestamp>
|
37
|
+
<update-key>PICU-6043885-070638e9*36873*34b5f*3ae0e*38317a0b7f845-*1</update-key>
|
38
|
+
<update-type>PICU</update-type>
|
39
|
+
<update-content>
|
40
|
+
<person>
|
41
|
+
<id>6043885</id>
|
42
|
+
<first-name>Darrin</first-name>
|
43
|
+
<last-name>Tvrdy, PMP</last-name>
|
44
|
+
<headline>Project Manager / Business Systems Analyst IV at Hewlett-Packard</headline>
|
45
|
+
<picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/1/000/03c/2b2/32dd2ae.jpg</picture-url>
|
46
|
+
<api-standard-profile-request>
|
47
|
+
<url>http://api.linkedin.com/v1/people/xNOObJb-yZ:full</url>
|
48
|
+
<headers total="1">
|
49
|
+
<http-header>
|
50
|
+
<name>x-li-auth-token</name>
|
51
|
+
<value>name:5DNj</value>
|
52
|
+
</http-header>
|
53
|
+
</headers>
|
54
|
+
</api-standard-profile-request>
|
55
|
+
<site-standard-profile-request>
|
56
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=6043885&authToken=5DNj&authType=name</url>
|
57
|
+
</site-standard-profile-request>
|
58
|
+
</person>
|
59
|
+
</update-content>
|
60
|
+
<is-commentable>true</is-commentable>
|
61
|
+
</update>
|
62
|
+
<update>
|
63
|
+
<timestamp>1257874533025</timestamp>
|
64
|
+
<update-key>PICU-58354393-3ce71c91*32ae4*349e4*39292*3fe67cf5f53e3-*1</update-key>
|
65
|
+
<update-type>PICU</update-type>
|
66
|
+
<update-content>
|
67
|
+
<person>
|
68
|
+
<id>58354393</id>
|
69
|
+
<first-name>Paula</first-name>
|
70
|
+
<last-name>Netherland</last-name>
|
71
|
+
<headline>Owner, TreeFrog Studios</headline>
|
72
|
+
<picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/3/000/03b/1fd/191b80c.jpg</picture-url>
|
73
|
+
<api-standard-profile-request>
|
74
|
+
<url>http://api.linkedin.com/v1/people/Wg56CgmrNZ:full</url>
|
75
|
+
<headers total="1">
|
76
|
+
<http-header>
|
77
|
+
<name>x-li-auth-token</name>
|
78
|
+
<value>name:ykZL</value>
|
79
|
+
</http-header>
|
80
|
+
</headers>
|
81
|
+
</api-standard-profile-request>
|
82
|
+
<site-standard-profile-request>
|
83
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=58354393&authToken=ykZL&authType=name</url>
|
84
|
+
</site-standard-profile-request>
|
85
|
+
</person>
|
86
|
+
</update-content>
|
87
|
+
<is-commentable>true</is-commentable>
|
88
|
+
</update>
|
89
|
+
<update>
|
90
|
+
<timestamp>1257862249721</timestamp>
|
91
|
+
<update-key>PICU-10801267-44155327*3e1a1*340bf*38507*313d4f654b91f-*1</update-key>
|
92
|
+
<update-type>PICU</update-type>
|
93
|
+
<update-content>
|
94
|
+
<person>
|
95
|
+
<id>10801267</id>
|
96
|
+
<first-name>Michael</first-name>
|
97
|
+
<last-name>Bleigh</last-name>
|
98
|
+
<headline>Creative Director for Intridea</headline>
|
99
|
+
<picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/03b/1d6/1ae8bb6.jpg</picture-url>
|
100
|
+
<api-standard-profile-request>
|
101
|
+
<url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
|
102
|
+
<headers total="1">
|
103
|
+
<http-header>
|
104
|
+
<name>x-li-auth-token</name>
|
105
|
+
<value>name:BcLL</value>
|
106
|
+
</http-header>
|
107
|
+
</headers>
|
108
|
+
</api-standard-profile-request>
|
109
|
+
<site-standard-profile-request>
|
110
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=10801267&authToken=BcLL&authType=name</url>
|
111
|
+
</site-standard-profile-request>
|
112
|
+
</person>
|
113
|
+
</update-content>
|
114
|
+
<is-commentable>true</is-commentable>
|
115
|
+
</update>
|
116
|
+
</updates>
|
117
|
+
</network>
|
@@ -0,0 +1,538 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<people total="152" start="0" count="10">
|
3
|
+
<person>
|
4
|
+
<id>U6YB1O2bqv</id>
|
5
|
+
<first-name>Zach</first-name>
|
6
|
+
<last-name>Inglis</last-name>
|
7
|
+
<headline>Partner at London Made</headline>
|
8
|
+
<location>
|
9
|
+
<name>United Kingdom</name>
|
10
|
+
<country>
|
11
|
+
<code>gb</code>
|
12
|
+
</country>
|
13
|
+
</location>
|
14
|
+
<industry>Online Media</industry>
|
15
|
+
<connections total="333" />
|
16
|
+
<num-recommenders>0</num-recommenders>
|
17
|
+
<distance>1</distance>
|
18
|
+
<positions total="3">
|
19
|
+
<position>
|
20
|
+
<id>54820459</id>
|
21
|
+
<title>Owner</title>
|
22
|
+
<summary>London Made is a development and design shop. We also offer training and recruitment.</summary>
|
23
|
+
<start-date>
|
24
|
+
<year>2008</year>
|
25
|
+
<month>11</month>
|
26
|
+
</start-date>
|
27
|
+
<is-current>true</is-current>
|
28
|
+
<company>
|
29
|
+
<name>London Made</name>
|
30
|
+
</company>
|
31
|
+
</position>
|
32
|
+
<position>
|
33
|
+
<id>47016515</id>
|
34
|
+
<title>Writer</title>
|
35
|
+
<start-date>
|
36
|
+
<year>2008</year>
|
37
|
+
<month>8</month>
|
38
|
+
</start-date>
|
39
|
+
<is-current>true</is-current>
|
40
|
+
<company>
|
41
|
+
<name>Ruby Inside</name>
|
42
|
+
</company>
|
43
|
+
</position>
|
44
|
+
<position>
|
45
|
+
<id>30985289</id>
|
46
|
+
<title>Partner</title>
|
47
|
+
<summary>Clipgarden allows you to earn money by recording the things you do best. We’re still in the early stages of development but continue to hear positive things.</summary>
|
48
|
+
<start-date>
|
49
|
+
<year>2007</year>
|
50
|
+
<month>8</month>
|
51
|
+
</start-date>
|
52
|
+
<is-current>true</is-current>
|
53
|
+
<company>
|
54
|
+
<name>Clipgarden</name>
|
55
|
+
</company>
|
56
|
+
</position>
|
57
|
+
</positions>
|
58
|
+
<api-standard-profile-request>
|
59
|
+
<url>http://api.linkedin.com/v1/people/U6YB1O2bqv:full</url>
|
60
|
+
<headers total="1">
|
61
|
+
<http-header>
|
62
|
+
<name>x-li-auth-token</name>
|
63
|
+
<value>OUT_OF_NETWORK:h0Rc</value>
|
64
|
+
</http-header>
|
65
|
+
</headers>
|
66
|
+
</api-standard-profile-request>
|
67
|
+
<site-standard-profile-request>
|
68
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=3669630&authToken=h0Rc&authType=OUT_OF_NETWORK</url>
|
69
|
+
</site-standard-profile-request>
|
70
|
+
</person>
|
71
|
+
<person>
|
72
|
+
<id>OVeaSymWcX</id>
|
73
|
+
<first-name>Zach</first-name>
|
74
|
+
<last-name>Moazeni</last-name>
|
75
|
+
<headline>Founder at Downstream</headline>
|
76
|
+
<location>
|
77
|
+
<name>Greater Grand Rapids, Michigan Area</name>
|
78
|
+
</location>
|
79
|
+
<industry>Computer Software</industry>
|
80
|
+
<connections total="93" />
|
81
|
+
<num-recommenders>0</num-recommenders>
|
82
|
+
<distance>2</distance>
|
83
|
+
<positions total="2">
|
84
|
+
<position>
|
85
|
+
<id>78139799</id>
|
86
|
+
<title>Founder</title>
|
87
|
+
<summary>As a co-founder of Downstream, I am tasked with the development in order to bring the product to launch. I am also responsible for the Application Scaling plans as well as helping give language to the other founders as they communicate to investors.</summary>
|
88
|
+
<start-date>
|
89
|
+
<year>2009</year>
|
90
|
+
<month>5</month>
|
91
|
+
</start-date>
|
92
|
+
<is-current>true</is-current>
|
93
|
+
<company>
|
94
|
+
<name>Downstream</name>
|
95
|
+
</company>
|
96
|
+
</position>
|
97
|
+
<position>
|
98
|
+
<id>14106883</id>
|
99
|
+
<title>Software Developer</title>
|
100
|
+
<summary>I've taken the technical lead on many of Elevator Up's projects from decision, design, and the implementation. Beyond the codebase itself, I have also been tasked to train junior developers to become productive contributors to the team. These projects have exposed me to many leading edge open source technologies surrounding the Rails stack.
|
101
|
+
|
102
|
+
Though my role is primarily as a developer, I've also taken responsibility in a wide variety of non-software areas. Business Planning, Business/Revenue Modeling, Interviewing/Hiring, Proposals, Estimating, Project Management, Server and Network Engineering/Administration, User Interface Design. My role(s) have consistently required me to distill technical knowledge and translate it into business terms.</summary>
|
103
|
+
<start-date>
|
104
|
+
<year>2007</year>
|
105
|
+
<month>1</month>
|
106
|
+
</start-date>
|
107
|
+
<is-current>true</is-current>
|
108
|
+
<company>
|
109
|
+
<name>Elevator Up</name>
|
110
|
+
</company>
|
111
|
+
</position>
|
112
|
+
</positions>
|
113
|
+
<api-standard-profile-request>
|
114
|
+
<url>http://api.linkedin.com/v1/people/OVeaSymWcX:full</url>
|
115
|
+
<headers total="1">
|
116
|
+
<http-header>
|
117
|
+
<name>x-li-auth-token</name>
|
118
|
+
<value>OUT_OF_NETWORK:-TzE</value>
|
119
|
+
</http-header>
|
120
|
+
</headers>
|
121
|
+
</api-standard-profile-request>
|
122
|
+
<site-standard-profile-request>
|
123
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=10342418&authToken=-TzE&authType=OUT_OF_NETWORK</url>
|
124
|
+
</site-standard-profile-request>
|
125
|
+
</person>
|
126
|
+
<person>
|
127
|
+
<id>HbUhpG4QBG</id>
|
128
|
+
<first-name>Kyle</first-name>
|
129
|
+
<last-name>Neath</last-name>
|
130
|
+
<headline>Designer for GitHub</headline>
|
131
|
+
<location>
|
132
|
+
<name>San Francisco Bay Area</name>
|
133
|
+
</location>
|
134
|
+
<industry>Internet</industry>
|
135
|
+
<connections total="103" />
|
136
|
+
<num-recommenders>0</num-recommenders>
|
137
|
+
<distance>2</distance>
|
138
|
+
<positions total="1">
|
139
|
+
<position>
|
140
|
+
<id>91660562</id>
|
141
|
+
<title>Designer</title>
|
142
|
+
<summary>I make shiny things for http://github.com and other Logical Awesome offerings.</summary>
|
143
|
+
<start-date>
|
144
|
+
<year>2009</year>
|
145
|
+
<month>10</month>
|
146
|
+
</start-date>
|
147
|
+
<is-current>true</is-current>
|
148
|
+
<company>
|
149
|
+
<name>Logical Awesome</name>
|
150
|
+
</company>
|
151
|
+
</position>
|
152
|
+
</positions>
|
153
|
+
<api-standard-profile-request>
|
154
|
+
<url>http://api.linkedin.com/v1/people/HbUhpG4QBG:full</url>
|
155
|
+
<headers total="1">
|
156
|
+
<http-header>
|
157
|
+
<name>x-li-auth-token</name>
|
158
|
+
<value>OUT_OF_NETWORK:Tia4</value>
|
159
|
+
</http-header>
|
160
|
+
</headers>
|
161
|
+
</api-standard-profile-request>
|
162
|
+
<site-standard-profile-request>
|
163
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=5178019&authToken=Tia4&authType=OUT_OF_NETWORK</url>
|
164
|
+
</site-standard-profile-request>
|
165
|
+
</person>
|
166
|
+
<person>
|
167
|
+
<id>YDJZU3B5E-</id>
|
168
|
+
<first-name>Rizwan</first-name>
|
169
|
+
<last-name>Reza</last-name>
|
170
|
+
<headline>Freelance Web Developer & Interaction Designer</headline>
|
171
|
+
<location>
|
172
|
+
<name>Saudi Arabia</name>
|
173
|
+
</location>
|
174
|
+
<industry>Computer Software</industry>
|
175
|
+
<connections total="46" />
|
176
|
+
<num-recommenders>0</num-recommenders>
|
177
|
+
<distance>2</distance>
|
178
|
+
<positions total="1">
|
179
|
+
<position>
|
180
|
+
<id>83027482</id>
|
181
|
+
<title>Freelance Web Developer & Interaction Designer</title>
|
182
|
+
<summary></summary>
|
183
|
+
<start-date>
|
184
|
+
<year>2009</year>
|
185
|
+
<month>8</month>
|
186
|
+
</start-date>
|
187
|
+
<is-current>true</is-current>
|
188
|
+
<company>
|
189
|
+
<name>Rizwan Reza</name>
|
190
|
+
</company>
|
191
|
+
</position>
|
192
|
+
</positions>
|
193
|
+
<api-standard-profile-request>
|
194
|
+
<url>http://api.linkedin.com/v1/people/YDJZU3B5E-:full</url>
|
195
|
+
<headers total="1">
|
196
|
+
<http-header>
|
197
|
+
<name>x-li-auth-token</name>
|
198
|
+
<value>OUT_OF_NETWORK:y2-T</value>
|
199
|
+
</http-header>
|
200
|
+
</headers>
|
201
|
+
</api-standard-profile-request>
|
202
|
+
<site-standard-profile-request>
|
203
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=26468354&authToken=y2-T&authType=OUT_OF_NETWORK</url>
|
204
|
+
</site-standard-profile-request>
|
205
|
+
</person>
|
206
|
+
<person>
|
207
|
+
<id>MUidFvxKQ6</id>
|
208
|
+
<first-name>Lance</first-name>
|
209
|
+
<last-name>Ennen</last-name>
|
210
|
+
<headline>Software Consultant at Obtiva</headline>
|
211
|
+
<location>
|
212
|
+
<name>Greater Chicago Area</name>
|
213
|
+
</location>
|
214
|
+
<industry>Computer Software</industry>
|
215
|
+
<connections total="206" />
|
216
|
+
<num-recommenders>0</num-recommenders>
|
217
|
+
<distance>2</distance>
|
218
|
+
<positions total="1">
|
219
|
+
<position>
|
220
|
+
<id>82862186</id>
|
221
|
+
<title>Software Consultant</title>
|
222
|
+
<summary></summary>
|
223
|
+
<start-date>
|
224
|
+
<year>2009</year>
|
225
|
+
<month>5</month>
|
226
|
+
</start-date>
|
227
|
+
<is-current>true</is-current>
|
228
|
+
<company>
|
229
|
+
<name>Obtiva</name>
|
230
|
+
</company>
|
231
|
+
</position>
|
232
|
+
</positions>
|
233
|
+
<api-standard-profile-request>
|
234
|
+
<url>http://api.linkedin.com/v1/people/MUidFvxKQ6:full</url>
|
235
|
+
<headers total="1">
|
236
|
+
<http-header>
|
237
|
+
<name>x-li-auth-token</name>
|
238
|
+
<value>OUT_OF_NETWORK:etcX</value>
|
239
|
+
</http-header>
|
240
|
+
</headers>
|
241
|
+
</api-standard-profile-request>
|
242
|
+
<site-standard-profile-request>
|
243
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=19558926&authToken=etcX&authType=OUT_OF_NETWORK</url>
|
244
|
+
</site-standard-profile-request>
|
245
|
+
</person>
|
246
|
+
<person>
|
247
|
+
<id>KH1gMc_rDG</id>
|
248
|
+
<first-name>Dominic</first-name>
|
249
|
+
<last-name>Da Silva</last-name>
|
250
|
+
<headline>Enterprise Application Developer specilizing in Java, .NET and Ruby technologies</headline>
|
251
|
+
<location>
|
252
|
+
<name>Orlando, Florida Area</name>
|
253
|
+
</location>
|
254
|
+
<industry>Information Technology and Services</industry>
|
255
|
+
<connections total="191" />
|
256
|
+
<num-recommenders>0</num-recommenders>
|
257
|
+
<distance>2</distance>
|
258
|
+
<positions total="2">
|
259
|
+
<position>
|
260
|
+
<id>71614339</id>
|
261
|
+
<title>Software Engineer</title>
|
262
|
+
<summary>Develop .NET applications using Microsoft and ALT.NET technologies, Service Oriented Architecture, and proven enterprise and software design patterns.
|
263
|
+
|
264
|
+
Follow the SCRUM agile development methodology.</summary>
|
265
|
+
<start-date>
|
266
|
+
<year>2009</year>
|
267
|
+
<month>4</month>
|
268
|
+
</start-date>
|
269
|
+
<is-current>true</is-current>
|
270
|
+
<company>
|
271
|
+
<name>Aptitude Solutions</name>
|
272
|
+
</company>
|
273
|
+
</position>
|
274
|
+
<position>
|
275
|
+
<id>18897619</id>
|
276
|
+
<title>President / Technical Architect / Lead Developer</title>
|
277
|
+
<summary>Owner, technical architect and lead developer for an independent software development consultancy.
|
278
|
+
|
279
|
+
SilvaSoft has built numerous customer facing business web sites using Java web technologies that integrate with existing web service, shipping and secure credit card processing APIs.
|
280
|
+
|
281
|
+
We use technologies such as Java (1.4, 5, 6), Struts, JBoss Seam, Tomcat (5, 6), XFire, Apache Axis, Apache CXF and Sun Metro.
|
282
|
+
|
283
|
+
We have integrated with third party web services such as:
|
284
|
+
1. Amazon S3
|
285
|
+
2. PayPal credit card payment API
|
286
|
+
3. Authorize.net credit card / check payment API
|
287
|
+
4. UPS shipping API.
|
288
|
+
|
289
|
+
Clients include Intellavia LLC, Amazon Web Services, Chenoa Information Services, adaptiveblue and Developer.com.
|
290
|
+
|
291
|
+
Client work includes:
|
292
|
+
|
293
|
+
JVI Inspection - http://www.jviinspection.com/
|
294
|
+
|
295
|
+
Coolaroo USA - http://www.coolaroousa.com/
|
296
|
+
|
297
|
+
IAPP - http://www.iappnet.org/
|
298
|
+
|
299
|
+
BMS Biowrap - http://biometricwrap.com/
|
300
|
+
|
301
|
+
Building a Struts-Based Web Application on Amazon S3 - http://tinyurl.com/d596b6
|
302
|
+
|
303
|
+
Building a Web Application with Ruby on Rails and Amazon S3 - http://tinyurl.com/236yk4</summary>
|
304
|
+
<start-date>
|
305
|
+
<year>2003</year>
|
306
|
+
<month>9</month>
|
307
|
+
</start-date>
|
308
|
+
<is-current>true</is-current>
|
309
|
+
<company>
|
310
|
+
<name>SilvaSoft, Inc.</name>
|
311
|
+
</company>
|
312
|
+
</position>
|
313
|
+
</positions>
|
314
|
+
<api-standard-profile-request>
|
315
|
+
<url>http://api.linkedin.com/v1/people/KH1gMc_rDG:full</url>
|
316
|
+
<headers total="1">
|
317
|
+
<http-header>
|
318
|
+
<name>x-li-auth-token</name>
|
319
|
+
<value>OUT_OF_NETWORK:VunB</value>
|
320
|
+
</http-header>
|
321
|
+
</headers>
|
322
|
+
</api-standard-profile-request>
|
323
|
+
<site-standard-profile-request>
|
324
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=13457424&authToken=VunB&authType=OUT_OF_NETWORK</url>
|
325
|
+
</site-standard-profile-request>
|
326
|
+
</person>
|
327
|
+
<person>
|
328
|
+
<id>k8ASaj0HMi</id>
|
329
|
+
<first-name>Barry</first-name>
|
330
|
+
<last-name>Hess</last-name>
|
331
|
+
<headline>Independent consultant in the web world</headline>
|
332
|
+
<location>
|
333
|
+
<name>Rochester, Minnesota Area</name>
|
334
|
+
</location>
|
335
|
+
<industry>Internet</industry>
|
336
|
+
<connections total="64" />
|
337
|
+
<num-recommenders>0</num-recommenders>
|
338
|
+
<distance>2</distance>
|
339
|
+
<positions total="2">
|
340
|
+
<position>
|
341
|
+
<id>17303961</id>
|
342
|
+
<title>Prime Hacker</title>
|
343
|
+
<summary>Helping Harvest be all that it can be. Primary developer on Co-op. Manage Iridesco programmer outreach.
|
344
|
+
|
345
|
+
http://getharvest.com
|
346
|
+
http://coopapp.com
|
347
|
+
http://github.com/iridesco</summary>
|
348
|
+
<start-date>
|
349
|
+
<year>2007</year>
|
350
|
+
</start-date>
|
351
|
+
<is-current>true</is-current>
|
352
|
+
<company>
|
353
|
+
<name>Iridesco</name>
|
354
|
+
</company>
|
355
|
+
</position>
|
356
|
+
<position>
|
357
|
+
<id>16038108</id>
|
358
|
+
<title>Prime Hacker</title>
|
359
|
+
<summary>Backend programming in Ruby on Rails, I also have a sense of design and interface. Live projects:
|
360
|
+
|
361
|
+
http://followcost.com
|
362
|
+
http://scrawlers.com
|
363
|
+
http://ventorium.com
|
364
|
+
http://gethoffed.com</summary>
|
365
|
+
<start-date>
|
366
|
+
<year>2007</year>
|
367
|
+
<month>2</month>
|
368
|
+
</start-date>
|
369
|
+
<is-current>true</is-current>
|
370
|
+
<company>
|
371
|
+
<name>bjhess.com</name>
|
372
|
+
</company>
|
373
|
+
</position>
|
374
|
+
</positions>
|
375
|
+
<api-standard-profile-request>
|
376
|
+
<url>http://api.linkedin.com/v1/people/k8ASaj0HMi:full</url>
|
377
|
+
<headers total="1">
|
378
|
+
<http-header>
|
379
|
+
<name>x-li-auth-token</name>
|
380
|
+
<value>OUT_OF_NETWORK:WcpW</value>
|
381
|
+
</http-header>
|
382
|
+
</headers>
|
383
|
+
</api-standard-profile-request>
|
384
|
+
<site-standard-profile-request>
|
385
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=9202576&authToken=WcpW&authType=OUT_OF_NETWORK</url>
|
386
|
+
</site-standard-profile-request>
|
387
|
+
</person>
|
388
|
+
<person>
|
389
|
+
<id>SvKzNaGjHa</id>
|
390
|
+
<first-name>Sukhchander</first-name>
|
391
|
+
<last-name>Khanna</last-name>
|
392
|
+
<headline>Software Manufacturer, Plumber, and Mechanic</headline>
|
393
|
+
<location>
|
394
|
+
<name>Greater New York City Area</name>
|
395
|
+
</location>
|
396
|
+
<industry>Internet</industry>
|
397
|
+
<connections total="276" />
|
398
|
+
<num-recommenders>0</num-recommenders>
|
399
|
+
<distance>2</distance>
|
400
|
+
<positions total="1">
|
401
|
+
<position>
|
402
|
+
<id>95304666</id>
|
403
|
+
<title>Software Manufacturer, Plumber, and Mechanic</title>
|
404
|
+
<summary></summary>
|
405
|
+
<start-date>
|
406
|
+
<year>2009</year>
|
407
|
+
<month>11</month>
|
408
|
+
</start-date>
|
409
|
+
<is-current>true</is-current>
|
410
|
+
<company>
|
411
|
+
<name>16012</name>
|
412
|
+
</company>
|
413
|
+
</position>
|
414
|
+
</positions>
|
415
|
+
<api-standard-profile-request>
|
416
|
+
<url>http://api.linkedin.com/v1/people/SvKzNaGjHa:full</url>
|
417
|
+
<headers total="1">
|
418
|
+
<http-header>
|
419
|
+
<name>x-li-auth-token</name>
|
420
|
+
<value>OUT_OF_NETWORK:_YOz</value>
|
421
|
+
</http-header>
|
422
|
+
</headers>
|
423
|
+
</api-standard-profile-request>
|
424
|
+
<site-standard-profile-request>
|
425
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=7452363&authToken=_YOz&authType=OUT_OF_NETWORK</url>
|
426
|
+
</site-standard-profile-request>
|
427
|
+
</person>
|
428
|
+
<person>
|
429
|
+
<id>qpgZ6hzBr7</id>
|
430
|
+
<first-name>John</first-name>
|
431
|
+
<last-name>Griffiths</last-name>
|
432
|
+
<headline>Web / Media / iPhone</headline>
|
433
|
+
<location>
|
434
|
+
<name>Colchester, United Kingdom</name>
|
435
|
+
</location>
|
436
|
+
<industry>Internet</industry>
|
437
|
+
<connections total="271" />
|
438
|
+
<num-recommenders>0</num-recommenders>
|
439
|
+
<distance>2</distance>
|
440
|
+
<positions total="1">
|
441
|
+
<position>
|
442
|
+
<id>16016691</id>
|
443
|
+
<title>Owner</title>
|
444
|
+
<summary>Personal site, now 7 years & going strong. Technical tutorials, code snippets & research. Ported from Typo to my own RoR CMS.</summary>
|
445
|
+
<start-date>
|
446
|
+
<year>2000</year>
|
447
|
+
<month>1</month>
|
448
|
+
</start-date>
|
449
|
+
<is-current>true</is-current>
|
450
|
+
<company>
|
451
|
+
<name>Red91.com</name>
|
452
|
+
</company>
|
453
|
+
</position>
|
454
|
+
</positions>
|
455
|
+
<api-standard-profile-request>
|
456
|
+
<url>http://api.linkedin.com/v1/people/qpgZ6hzBr7:full</url>
|
457
|
+
<headers total="1">
|
458
|
+
<http-header>
|
459
|
+
<name>x-li-auth-token</name>
|
460
|
+
<value>OUT_OF_NETWORK:VtL8</value>
|
461
|
+
</http-header>
|
462
|
+
</headers>
|
463
|
+
</api-standard-profile-request>
|
464
|
+
<site-standard-profile-request>
|
465
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=7104192&authToken=VtL8&authType=OUT_OF_NETWORK</url>
|
466
|
+
</site-standard-profile-request>
|
467
|
+
</person>
|
468
|
+
<person>
|
469
|
+
<id>6Vt1KQjwGB</id>
|
470
|
+
<first-name>Matt</first-name>
|
471
|
+
<last-name>Aimonetti</last-name>
|
472
|
+
<headline>Senior Software Engineer</headline>
|
473
|
+
<location>
|
474
|
+
<name>Greater San Diego Area</name>
|
475
|
+
</location>
|
476
|
+
<industry>Computer Software</industry>
|
477
|
+
<connections total="237" />
|
478
|
+
<num-recommenders>0</num-recommenders>
|
479
|
+
<distance>2</distance>
|
480
|
+
<positions total="3">
|
481
|
+
<position>
|
482
|
+
<id>59051476</id>
|
483
|
+
<title>Evangelist/Developer Relation Engineer</title>
|
484
|
+
<summary></summary>
|
485
|
+
<start-date>
|
486
|
+
<year>2008</year>
|
487
|
+
<month>12</month>
|
488
|
+
</start-date>
|
489
|
+
<is-current>true</is-current>
|
490
|
+
<company>
|
491
|
+
<name>Ruby on Rails</name>
|
492
|
+
</company>
|
493
|
+
</position>
|
494
|
+
<position>
|
495
|
+
<id>49599478</id>
|
496
|
+
<title>Lead Evangelist/ Developer</title>
|
497
|
+
<summary>Build a critical mass of support and awareness around Merb, a flexible yet powerful Ruby framework.</summary>
|
498
|
+
<start-date>
|
499
|
+
<year>2008</year>
|
500
|
+
<month>9</month>
|
501
|
+
</start-date>
|
502
|
+
<is-current>true</is-current>
|
503
|
+
<company>
|
504
|
+
<name>Merb</name>
|
505
|
+
</company>
|
506
|
+
</position>
|
507
|
+
<position>
|
508
|
+
<id>17113878</id>
|
509
|
+
<title>Owner and Lead Developer</title>
|
510
|
+
<summary>- Help the customer evaluate and define their IT needs using Agile Methodologies
|
511
|
+
- Develop Ruby on Rails / Merb based solutions
|
512
|
+
- Evaluate effectiveness of provided solutions
|
513
|
+
- Audit on existing project
|
514
|
+
- Provide training/coaching for on-site teams</summary>
|
515
|
+
<start-date>
|
516
|
+
<year>2005</year>
|
517
|
+
<month>6</month>
|
518
|
+
</start-date>
|
519
|
+
<is-current>true</is-current>
|
520
|
+
<company>
|
521
|
+
<name>m|a agile consulting, inc.</name>
|
522
|
+
</company>
|
523
|
+
</position>
|
524
|
+
</positions>
|
525
|
+
<api-standard-profile-request>
|
526
|
+
<url>http://api.linkedin.com/v1/people/6Vt1KQjwGB:full</url>
|
527
|
+
<headers total="1">
|
528
|
+
<http-header>
|
529
|
+
<name>x-li-auth-token</name>
|
530
|
+
<value>OUT_OF_NETWORK:1QZs</value>
|
531
|
+
</http-header>
|
532
|
+
</headers>
|
533
|
+
</api-standard-profile-request>
|
534
|
+
<site-standard-profile-request>
|
535
|
+
<url>http://www.linkedin.com/profile?viewProfile=&key=6347192&authToken=1QZs&authType=OUT_OF_NETWORK</url>
|
536
|
+
</site-standard-profile-request>
|
537
|
+
</person>
|
538
|
+
</people>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linkedin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wynn Netherland
|
@@ -32,6 +32,16 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 3.1.3
|
34
34
|
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: crack
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.1.4
|
44
|
+
version:
|
35
45
|
- !ruby/object:Gem::Dependency
|
36
46
|
name: thoughtbot-shoulda
|
37
47
|
type: :development
|
@@ -94,16 +104,24 @@ files:
|
|
94
104
|
- lib/linked_in/education.rb
|
95
105
|
- lib/linked_in/error.rb
|
96
106
|
- lib/linked_in/location.rb
|
107
|
+
- lib/linked_in/network.rb
|
108
|
+
- lib/linked_in/people.rb
|
97
109
|
- lib/linked_in/position.rb
|
98
110
|
- lib/linked_in/profile.rb
|
111
|
+
- lib/linked_in/update.rb
|
99
112
|
- lib/linked_in/url_resource.rb
|
100
113
|
- lib/linkedin.rb
|
101
114
|
- test/client_test.rb
|
115
|
+
- test/fixtures/blank.xml
|
102
116
|
- test/fixtures/connections.xml
|
103
117
|
- test/fixtures/error.xml
|
118
|
+
- test/fixtures/network_statuses.xml
|
119
|
+
- test/fixtures/picture_updates.xml
|
104
120
|
- test/fixtures/profile.xml
|
105
121
|
- test/fixtures/profile_full.xml
|
106
122
|
- test/fixtures/profile_with_positions.xml
|
123
|
+
- test/fixtures/search.xml
|
124
|
+
- test/fixtures/status.xml
|
107
125
|
- test/oauth_test.rb
|
108
126
|
- test/test_helper.rb
|
109
127
|
has_rdoc: true
|