diff options
author | Francois Perrad <francois.perrad@gadz.org> | 2011-07-01 22:37:16 +0200 |
---|---|---|
committer | Francois Perrad <francois.perrad@gadz.org> | 2011-07-01 22:37:16 +0200 |
commit | d5c361bd161341fd1cfedba44c06581a13a7da71 (patch) | |
tree | f5d6d845eeb66569f621a29f3ec13632d92ae2f8 | |
parent | compat OAuth 1.0 & 2.0 (diff) | |
download | api-description-d5c361bd161341fd1cfedba44c06581a13a7da71.tar.gz |
add LinkedIn API
-rw-r--r-- | services/Makefile | 3 | ||||
-rw-r--r-- | services/linkedin/Makefile | 34 | ||||
-rw-r--r-- | services/linkedin/communications.json | 31 | ||||
-rw-r--r-- | services/linkedin/companies.json | 127 | ||||
-rw-r--r-- | services/linkedin/groups.json | 278 | ||||
-rw-r--r-- | services/linkedin/jobs.json | 101 | ||||
-rw-r--r-- | services/linkedin/linkedin.png | bin | 0 -> 190123 bytes | |||
-rw-r--r-- | services/linkedin/network.json | 81 | ||||
-rw-r--r-- | services/linkedin/oauth.json | 44 | ||||
-rw-r--r-- | services/linkedin/people.json | 150 |
10 files changed, 849 insertions, 0 deletions
diff --git a/services/Makefile b/services/Makefile index eb54875..10a704f 100644 --- a/services/Makefile +++ b/services/Makefile @@ -4,6 +4,7 @@ SPORE2DOT := perl ../utils/spore2dot.pl check: spore_validation.rx @make -C github check @make -C googlemaps check + @make -C linkedin check @$(VALIDATOR) amazons3.json @$(VALIDATOR) backtweet.json @$(VALIDATOR) backtype.json @@ -37,6 +38,7 @@ png: \ twitter.png @make -C github png @make -C googlemaps png + @make -C linkedin png %.png : %.dot dot -T png -o $@ $< @@ -47,4 +49,5 @@ png: \ clean: @make -C github clean @make -C googlemaps clean + @make -C linkedin clean -rm *.png *.dot spore_validation.rx diff --git a/services/linkedin/Makefile b/services/linkedin/Makefile new file mode 100644 index 0000000..f48c51e --- /dev/null +++ b/services/linkedin/Makefile @@ -0,0 +1,34 @@ + +VALIDATOR := perl ../../utils/validator.pl --schema spore_validation.rx --description +SPORE2DOT := perl ../../utils/spore2dot.pl + +check: spore_validation.rx + @$(VALIDATOR) oauth.json + @$(VALIDATOR) people.json + @$(VALIDATOR) groups.json + @$(VALIDATOR) companies.json + @$(VALIDATOR) jobs.json + @$(VALIDATOR) network.json + @$(VALIDATOR) communications.json + +test: check + +spore_validation.rx: + wget http://github.com/SPORE/specifications/raw/master/spore_validation.rx + +png: linkedin.png + +%.png: %.dot + dot -T png -o $@ $< + +linkedin.dot: \ + people.json \ + groups.json \ + companies.json \ + jobs.json \ + network.json \ + communications.json + $(SPORE2DOT) $^ > $@ + +clean: + -rm *.png *.dot spore_validation.rx diff --git a/services/linkedin/communications.json b/services/linkedin/communications.json new file mode 100644 index 0000000..820017d --- /dev/null +++ b/services/linkedin/communications.json @@ -0,0 +1,31 @@ +{ + "version" : "0.1", + "base_url" : "http://api.linkedin.com", + "methods" : { + "send_message" : { + "path" : "/v1/people/~/mailbox", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "expected_status" : [ 201 ] + }, + "send_invitation" : { + "path" : "/v1/people/~/mailbox", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "expected_status" : [ 201 ] + } + }, + "authentication" : true, + "authority" : "http://github.com/SPORE", + "name" : "LinkedIn", + "meta" : { + "documentation" : "http://developer.linkedin.com/", + "module" : "Communications" + } +} diff --git a/services/linkedin/companies.json b/services/linkedin/companies.json new file mode 100644 index 0000000..8507253 --- /dev/null +++ b/services/linkedin/companies.json @@ -0,0 +1,127 @@ +{ + "version" : "0.1", + "base_url" : "http://api.linkedin.com", + "methods" : { + "company_by_id" : { + "path" : "/v1/compagnies/:id:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "company_by_name" : { + "path" : "/v1/companies/universal-name=:name:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "name", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "search_company" : { + "path" : "/v1/company-search:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "keywords", + "hq-only", + "facet", + "facets", + "start", + "count", + "sort", + "format" + ], + "expected_status" : [ 200 ] + }, + "my_followed_companies" : { + "path" : "/v1/people/~/following/companies:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200 ] + }, + "follow_company" : { + "path" : "/v1/people/~/following/companies", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "expected_status" : [ 201 ] + }, + "unfollow_company" : { + "path" : "/v1/people/~/following/companies/id=:id", + "method" : "DELETE", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id" + ], + "expected_status" : [ 204 ] + }, + "suggestion_companies" : { + "path" : "/v1/people/~/suggestions/to-follow/companies:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200 ] + }, + "company_products" : { + "path" : "/v1/companies/:id/products:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200 ] + } + }, + "authentication" : true, + "authority" : "http://github.com/SPORE", + "name" : "LinkedIn", + "meta" : { + "documentation" : "http://developer.linkedin.com/", + "module" : "Companies" + } +} diff --git a/services/linkedin/groups.json b/services/linkedin/groups.json new file mode 100644 index 0000000..7aed98f --- /dev/null +++ b/services/linkedin/groups.json @@ -0,0 +1,278 @@ +{ + "version" : "0.1", + "base_url" : "http://api.linkedin.com", + "methods" : { + "group_by_id" : { + "path" : "/v1/groups/:id:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "my_group_memberships" : { + "path" : "/v1/people/~/group-memberships:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "membership-state", + "format" + ], + "expected_status" : [ 200 ] + }, + "show_group_setting" : { + "path" : "/v1/people/~/group-memberships/:id:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "change_group_setting" : { + "path" : "/v1/people/~/group-memberships/:id", + "method" : "PUT", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "required_params" : [ + "id" + ], + "expected_status" : [ 201 ] + }, + "join_group_by_id" : { + "path" : "/v1/people/~/group-memberships/:id", + "method" : "PUT", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "required_params" : [ + "id" + ], + "expected_status" : [ 201 ] + }, + "join_group" : { + "path" : "/v1/people/~/group-memberships", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "expected_status" : [ 201 ] + }, + "leave_group" : { + "path" : "/v1/people/~/group-memberships/:id", + "method" : "DELETE", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id" + ], + "expected_status" : [ 204 ] + }, + "show_posts" : { + "path" : "/v1/groups/:id/posts:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "start", + "count", + "order", + "role", + "category", + "modified-since", + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "post_by_id" : { + "path" : "/v1/posts/:id:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "show_comments" : { + "path" : "/v1/posts/:id/comments:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "start", + "count", + "order", + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "create_post" : { + "path" : "/v1/groups/:id/posts", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "required_params" : [ + "id" + ], + "expected_status" : [ 201 ] + }, + "like_post" : { + "path" : "/v1/posts/:id/relation-to-viewer/is-liked", + "method" : "PUT", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "required_params" : [ + "id" + ], + "expected_status" : [ 201 ] + }, + "follow_post" : { + "path" : "/v1/posts/:id/relation-to-viewer/is-following", + "method" : "PUT", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "required_params" : [ + "id" + ], + "expected_status" : [ 201 ] + }, + "flag_post" : { + "path" : "/v1/posts/:id/category/code", + "method" : "PUT", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "required_params" : [ + "id" + ], + "expected_status" : [ 201 ] + }, + "delete_post" : { + "path" : "/v1/posts/:id", + "method" : "DELETE", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id" + ], + "expected_status" : [ 204 ] + }, + "comment_by_id" : { + "path" : "/v1/comments/:id:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "add_comment" : { + "path" : "/v1/posts/:id/comments", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "required_params" : [ + "id" + ], + "expected_status" : [ 201 ] + }, + "delete_comment" : { + "path" : "/v1/comments/:id", + "method" : "DELETE", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id" + ], + "expected_status" : [ 204 ] + }, + "suggestion_groups" : { + "path" : "/v1/people/~/suggestions/groups:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200 ] + }, + "remove_group_suggestion" : { + "path" : "/v1/people/~/suggestions/groups/:id", + "method" : "DELETE", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id" + ], + "expected_status" : [ 204 ] + } + }, + "authentication" : true, + "authority" : "http://github.com/SPORE", + "name" : "LinkedIn", + "meta" : { + "documentation" : "http://developer.linkedin.com/", + "module" : "Groups" + } +} diff --git a/services/linkedin/jobs.json b/services/linkedin/jobs.json new file mode 100644 index 0000000..d234079 --- /dev/null +++ b/services/linkedin/jobs.json @@ -0,0 +1,101 @@ +{ + "version" : "0.1", + "base_url" : "http://api.linkedin.com", + "methods" : { + "job_by_id" : { + "path" : "/v1/jobs/:id:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "search_job" : { + "path" : "/v1/job-search:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "keywords", + "company-name", + "job-title", + "country-code", + "postal-code", + "distance", + "facet", + "facets", + "start", + "count", + "sort", + "format" + ], + "expected_status" : [ 200 ] + }, + "my_bookmarked_jobs" : { + "path" : "/v1/people/~/job-bookmarks:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200 ] + }, + "bookmark_job" : { + "path" : "/v1/people/~/job-bookmarks", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "expected_status" : [ 201 ] + }, + "unbookmark_job" : { + "path" : "/v1/people/~/job-bookmarks/:id", + "method" : "DELETE", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id" + ], + "expected_status" : [ 204 ] + }, + "suggestion_jobs" : { + "path" : "/v1/people/~/suggestions/job-suggestions:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "format" + ], + "expected_status" : [ 200 ] + } + }, + "authentication" : true, + "authority" : "http://github.com/SPORE", + "name" : "LinkedIn", + "meta" : { + "documentation" : "http://developer.linkedin.com/", + "module" : "Jobs" + } +} diff --git a/services/linkedin/linkedin.png b/services/linkedin/linkedin.png new file mode 100644 index 0000000..76da206 --- /dev/null +++ b/services/linkedin/linkedin.png Binary files differdiff --git a/services/linkedin/network.json b/services/linkedin/network.json new file mode 100644 index 0000000..280a2ca --- /dev/null +++ b/services/linkedin/network.json @@ -0,0 +1,81 @@ +{ + "version" : "0.1", + "base_url" : "http://api.linkedin.com", + "methods" : { + "my_network_updates" : { + "path" : "/v1/people/~/network/updates", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "optional_params" : [ + "scope", + "type", + "count", + "start", + "after", + "before", + "show-hidden-members", + "format" + ], + "expected_status" : [ 200 ] + }, + "network_updates_by_id" : { + "path" : "/v1/people/id=:id/network/updates", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id" + ], + "optional_params" : [ + "scope", + "type", + "count", + "start", + "after", + "before", + "show-hidden-members", + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "my_network_stats" : { + "path" : "/v1/people/~/network/network-stats", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "optional_params" : [ + "format" + ], + "expected_status" : [ 200 ] + }, + "post_update" : { + "path" : "/v1/people/~/person-activities", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "expected_status" : [ 201 ] + }, + "add_shares" : { + "path" : "/v1/people/~/shares", + "method" : "POST", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_payload" : true, + "expected_status" : [ 201 ] + } + }, + "authentication" : true, + "authority" : "http://github.com/SPORE", + "name" : "LinkedIn", + "meta" : { + "documentation" : "http://developer.linkedin.com/", + "module" : "Network" + } +} diff --git a/services/linkedin/oauth.json b/services/linkedin/oauth.json new file mode 100644 index 0000000..9cf94e1 --- /dev/null +++ b/services/linkedin/oauth.json @@ -0,0 +1,44 @@ +{ + "version" : "0.1", + "base_url" : "https://api.linkedin.com", + "methods" : { + "get_request_token" : { + "path" : "/uas/oauth/requestToken", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_signature_method=\":oauth_signature_method\", oauth_signature=\":oauth_signature\", oauth_timestamp=\":oauth_timestamp\", oauth_nonce=\":oauth_nonce\", oauth_version=\":oauth_version\", oauth_callback=\":oauth_callback\"" + }, + "expected_status" : [ 200, 400 ], + "authentication" : true + }, + "get_access_token" : { + "path" : "/uas/oauth/accessToken", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_token=\":oauth_token\", oauth_verifier=\":oauth_verifier\", oauth_signature_method=\":oauth_signature_method\", oauth_signature=\":oauth_signature\", oauth_timestamp=\":oauth_timestamp\", oauth_nonce=\":oauth_nonce\", oauth_version=\":oauth_version\"" + }, + "expected_status" : [ 200, 400 ], + "authentication" : true + }, + "authorize_token" : { + "path" : "/uas/oauth/authorize", + "method" : "GET", + "required_params" : [ + "oauth_token" + ], + "expected_status" : [ 302 ] + }, + "invalidate_token" : { + "path" : "/uas/oauth/invalidateToken", + "method" : "GET", + "expected_status" : [ 200, 400 ], + "authentication" : true + } + }, + "authority" : "http://github.com/SPORE", + "name" : "LinkedIn", + "meta" : { + "documentation" : "http://developer.linkedin.com/", + "module" : "OAuth" + } +} diff --git a/services/linkedin/people.json b/services/linkedin/people.json new file mode 100644 index 0000000..d315e93 --- /dev/null +++ b/services/linkedin/people.json @@ -0,0 +1,150 @@ +{ + "version" : "0.1", + "base_url" : "http://api.linkedin.com", + "methods" : { + "my_profile" : { + "path" : "/v1/people/~:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"", + "Accept-Language" : ":lang" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "format", + "lang" + ], + "expected_status" : [ 200 ] + }, + "profile_by_id" : { + "path" : "/v1/people/id=:id:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"", + "Accept-Language" : ":lang" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "format", + "lang" + ], + "expected_status" : [ 200, 404 ] + }, + "profile_by_url" : { + "path" : "/v1/people/url=:url:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"", + "Accept-Language" : ":lang" + }, + "required_params" : [ + "url", + "selector" + ], + "optional_params" : [ + "format", + "lang" + ], + "expected_status" : [ 200, 404 ] + }, + "search_people" : { + "path" : "/v1/people-search:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "keywords", + "first-name", + "last-name", + "company-name", + "current-company", + "title", + "current-title", + "school-name", + "current-school", + "country-code", + "postal-code", + "distance", + "facet", + "facets", + "start", + "count", + "sort", + "format" + ], + "expected_status" : [ 200 ] + }, + "my_connections" : { + "path" : "/v1/people/~/connections:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "selector" + ], + "optional_params" : [ + "start", + "count", + "modified", + "modified-since", + "format" + ], + "expected_status" : [ 200 ] + }, + "connections_by_id" : { + "path" : "/v1/people/id=:id/connections:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "id", + "selector" + ], + "optional_params" : [ + "start", + "count", + "modified", + "modified-since", + "format" + ], + "expected_status" : [ 200, 404 ] + }, + "connections_by_url" : { + "path" : "/v1/people/url=:url/connnections:selector", + "method" : "GET", + "headers" : { + "Authorization" : "OAuth oauth_consumer_key=\":oauth_consumer_key\", oauth_nonce=\":oauth_nonce\", oauth_signature_method=\":oauth_signature_method\", oauth_timestamp=\":oauth_timestamp\", oauth_token=\":oauth_token\", oauth_version=\":oauth_version\", oauth_signature=\":oauth_signature\"" + }, + "required_params" : [ + "url", + "selector" + ], + "optional_params" : [ + "start", + "count", + "modified", + "modified-since", + "format" + ], + "expected_status" : [ 200, 404 ] + } + }, + "authentication" : true, + "authority" : "http://github.com/SPORE", + "name" : "LinkedIn", + "meta" : { + "documentation" : "http://developer.linkedin.com/", + "module" : "People" + } +} |