Linkedin Login Auhtentication Sample Python Code





Linkedin Login Auhtentication



consumer_key           =  settings.SOCIAL_AUTH_CREDENTIALS['linkedin']['consumer_key']
consumer_secret        =  settings.SOCIAL_AUTH_CREDENTIALS['linkedin']['consumer_secret']


def login(request):
    try:
        request_token_url = 'https://api.linkedin.com/uas/oauth/requestToken'
        consumer = oauth.Consumer(consumer_key, consumer_secret)
        client = oauth.Client(consumer)
        client.ca_certs = certifi.where()
        resp, content = client.request(request_token_url, "GET")
        if resp['status'] != '200':
            raise Exception("Invalid response %s." % resp['status'])
         
        request_token = dict(urlparse.parse_qsl(content))
        request.session['linkedintoken'] = request_token
        authorize_url = 'https://api.linkedin.com/uas/oauth/authorize?oauth_token=%s' % request_token['oauth_token']
        return HttpResponseRedirect(authorize_url)
    except:
        return HttpResponseRedirect("/login")

def callback(request):
    request_token = request.session['linkedintoken']
    access_token_url = 'https://api.linkedin.com/uas/oauth/accessToken'
    consumer = oauth.Consumer(consumer_key, consumer_secret)
    token = oauth.Token(request_token['oauth_token'], request_token['oauth_token_secret'])
    token.set_verifier(request.GET.get('oauth_verifier',''))
    client = oauth.Client(consumer, token)
    client.ca_certs = certifi.where()
    resp, content = client.request(access_token_url, "POST")
    access_token = dict(urlparse.parse_qsl(content))
    try:
        url = "https://api.linkedin.com/v1/people/~:(first_name,last_name,siteStandardProfileRequest,id,positions:(company:(name)))?format=json"
        token = oauth.Token(
                             key=access_token['oauth_token'], 
                             secret=access_token['oauth_token_secret'])
        
        
        client = oauth.Client(consumer, token)
        client.ca_certs = certifi.where()
        resp, content = client.request(url)
        user_info = json.loads(content)
.
.
.
.
.
.
.

Written by, Thanga Vignesh Raja T


Comments

Popular Posts