|
|
@@ -1,24 +1,68 @@
|
|
|
-import requests
|
|
|
-import simplejson as json
|
|
|
-
|
|
|
-
|
|
|
-consumer_key = "7895bbnlh1k0mn"
|
|
|
-consumer_secret = "7CjUx1xTsF2WDRAI"
|
|
|
-oauth_token = "60b8f2c4-28b6-498d-a645-9dffb8baf47d"
|
|
|
-oauth_secret = "3114e3d4-d725-482d-a11c-2e7607025a27"
|
|
|
-
|
|
|
-def getUserInfo():
|
|
|
- req = requests.get("https://api.linkedin.com/v1/people/~")
|
|
|
- jlist = []
|
|
|
- jlist.append(json.loads(req.content))
|
|
|
- parsedData = []
|
|
|
- userData = {}
|
|
|
- for data in jlist:
|
|
|
- userData['firstname'] = data['firstname']
|
|
|
- userData['lasttname'] = data['lastname']
|
|
|
- userData['email'] = data['email']
|
|
|
- userData['connections'] = data['connections']
|
|
|
-
|
|
|
- parsedData.append(userData)
|
|
|
-
|
|
|
- return parsedData
|
|
|
+
|
|
|
+
|
|
|
+import urllib
|
|
|
+import urlparse
|
|
|
+import oauth2 as oauth
|
|
|
+import simplejson
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+class LinkedInAPI(object):
|
|
|
+
|
|
|
+ base_url = 'https://api.linkedin.com'
|
|
|
+ li_url ='http://www.linkedin.com'
|
|
|
+
|
|
|
+
|
|
|
+ api_profile_connections_url = base_url + '/v1/people/~/connections'
|
|
|
+ api_profile_url = base_url + '/v1/people/~'
|
|
|
+
|
|
|
+
|
|
|
+ access_token_path = base_url + '/uas/oauth/accessToken'
|
|
|
+ authorize_path = base_url + '/uas/oauth/authorization'
|
|
|
+
|
|
|
+
|
|
|
+ def __init__(self, ck, cs, ut, us):
|
|
|
+ self.consumer_key = ck
|
|
|
+ self.consumer_secret = cs
|
|
|
+ self.user_token = ut
|
|
|
+ self.user_secret = us
|
|
|
+ self.consumer = oauth.Consumer(self.consumer_key, self.consumer_secret)
|
|
|
+
|
|
|
+ def get_authorize_url(self):
|
|
|
+
|
|
|
+ li_url ='http://www.linkedin.com'
|
|
|
+ authorize_path = li_url +'/uas/oauth/authorization'
|
|
|
+ auth_url = authorize_path+self.consumer_key+'redirect_uri=https://127.0.0.1:8000/hackathon/linkedin'
|
|
|
+ return auth_url
|
|
|
+
|
|
|
+ def get_access_token(self, request_token, verifier):
|
|
|
+
|
|
|
+ token = self.get_user_token(request_token)
|
|
|
+ token.set_verifier(verifier)
|
|
|
+ return dict(urlparse.parse_qsl(self.request(
|
|
|
+ self.access_token_path, {}, 'POST', token=token)))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ def get_user_connections(self, access_token, selectors=None, query_args=None, headers=None):
|
|
|
+
|
|
|
+ token = self.get_user_token(access_token)
|
|
|
+ url = self.api_profile_connections_url
|
|
|
+ if selectors:
|
|
|
+ assert type(selectors) == type([]), (
|
|
|
+ '"Keyword argument "selectors" must be of type "list"')
|
|
|
+ url = self.prepare_field_selectors(selectors, url)
|
|
|
+ return simplejson.loads(self.request(
|
|
|
+ url, query_args, 'GET', headers=headers, token=token))
|
|
|
+
|
|
|
+ def get_user_profile(self, access_token, selectors=None, headers=None, **query_args):
|
|
|
+ token = self.get_user_token(access_token)
|
|
|
+ url = self.api_profile_url
|
|
|
+ if selectors:
|
|
|
+ assert type(selectors) == type([]), (
|
|
|
+ '"Keyword argument "selectors" must be of type "list"')
|
|
|
+ url = self.prepare_field_selectors(selectors, url)
|
|
|
+ return simplejson.loads(self.request(
|
|
|
+ url, query_args, 'GET', token=token, headers=headers))
|
|
|
+
|
|
|
+
|