Ошибка аутентификации Я пытаюсь без успеха подключить своих пользователей к LinkedIn через аутентификацию Oauth в Python. Я использую Django в python и не использую стороннюю социальную аутентификацию. Я использую Руководство для получения доступа к API с помощью Python и Django. Однако мне трудно получить токен доступа. Я могу заставить пользователя войти в систему и получить код аутентификации. Я поместил новый запрос, поскольку предыдущий вопрос был слишком запутан. Вы можете видеть это здесь: Performing POST on a URL string in DjangoLinkedIn Authentication
Ничего не было разрешено и по-прежнему не уверены, если это проблема с LinkedIn или кодом. К сожалению, LinkedIn не очень полезен.
но после получения кода автора я просто не могу получить токен доступа. Я получаю сообщение об ошибке 400 за все и, несмотря на получение кода автора, на публикации, как следует из документации, я получаю следующее:
u'oauth_problem=parameter_absent&oauth_parameters_absent=oauth_consumer_key%26oauth_signature%26oauth_signature_method%26oauth_token%26oauth_timestamp%26oauth_verifier'
Я прилагаю мой код Python здесь во всей своей полноте в надежде, что кто-то может определить, что происходит не так.
import oauth2 as oauth
import httplib2
import time, os, simplejson
import urllib
import urllib2
import pycurl
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.core.urlresolvers import resolve
#from django.core.shortcuts import render, redirect
from django import forms
from django.utils import timezone
import urlparse
import requests
consumer_key = 'Yours'
consumer_secret = 'Yours'
user_token = 'Yours'
user_secret = 'Yours'
consumer = oauth.Consumer(consumer_key, consumer_secret)
access_token = oauth.Token(key=user_token,secret=user_secret)
client = oauth.Client(consumer, access_token)
request_token_url = 'https://api.linkedin.com/uas/oauth/requestToken'
access_token_url = 'https://api.linkedin.com/uas/oauth/accessToken'
authorize_url = 'https://www.linkedin.com/uas/oauth/authenticate'
def login(request):
redirect_uri = urllib2.quote('http://127.0.0.1:9000/loginsuccess')
codeURL = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=c3skrqz5wqmm&scope=r_fullprofile&state=DCEEFWF45453sdffef425&redirect_uri=" + redirect_uri
# Fill the keys and secrets you retrieved after registering your app
# Use your API key and secret to instantiate consumer object
#resp,content = client.request("http://api.linkedin.com/v1/people/~?format=json", "GET", "")
#resp, content = client.request(request_token_url, "POST")
#request_token = dict(urlparse.parse_qsl(content))
#return HttpResponse(access_token)
return HttpResponseRedirect(codeURL)
def loginsuccess(request):
authcode = request.GET.get('code')
redirect_uri = 'http://www.jelt.com'
#redirect_succ = 'http://www.127.0.0.1:8080/manage'
postdata = {
'grant_type': 'authorization_code',
'code': authcode,
'redirect_uri': redirect_uri,
'client_id': consumer_key,
'client_secret': consumer_secret,
}
r = requests.post(access_token_url, data=postdata)
#return HttpResponse(r.text)
#return HttpResponse(r.status_code)
return HttpResponseRedirect(redirect_uri)
def Manage(request):
return HttpResponseRedirect('http://www.xyz.com')
def success(request):
redirect_uri = urllib2.quote('http://www.xyz.com')
redirect_uri = "http://www.xyz.com"
return HttpResponseRedirect(redirect_uri)
Есть ли какая-либо конкретная причина не использовать оболочку Python? https://github.com/ozgur/python-linkedin – PepperoniPizza
Или вместо обложки, как насчет Django-Social-Auth? https://github.com/omab/django-social-auth –