Browse Source

added linkedin script

Eswari Pravallika Swarna 10 years ago
parent
commit
24e378e5a1
1 changed files with 68 additions and 24 deletions
  1. 68 24
      hackathon_starter/hackathon/scripts/linkedin.py

+ 68 - 24
hackathon_starter/hackathon/scripts/linkedin.py

@@ -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))
+
+