netflix api 및 python oauth2 라이브러리의 보호 된 인증 작업을하고 있습니다. 그러나 사용자가 netflix 계정을 사용하여 로그인 할 수 있도록 서명 된 요청을하는 데 아무런 문제가 없습니다. access_token을 얻으려고 할 때 몇 가지 문제가 있습니다. OAuth가 verifier
을 반환하지 않는 경우도 있습니다. netflix의 승인 페이지에서 리디렉션 된 후에도 다음과 같이 표시됩니다. http://127.0.0.1:5000/authorized_user?oauth_token=some_token&oauth_verifier=
이 비어 있으며 확인자가 비어 있습니다.oauth2 라이브러리 및 Netflix API 반환 없음 액세스 토큰
저는 도서관에 새로 왔으며 verfier
이 없을 때해야 할 일을 이해하지 못했습니다. 이후, 사용자를 netflix 로그인/승인 페이지로 성공적으로 리디렉션합니다. 나는 나의 잘못이 내가 완전히 이해하지 못하는이 단계에서 온다고 가정한다. 아래는 내가 시도하고있는 단순화 된 (셸) 버전입니다. 나는 옳은 방향으로 밀고 나가기를 바랄 것입니다. netflix 문서를 읽고 라이브러리 문서를 읽었지 만 할 일을 알아낼 수 없었습니다.
# Get request token (temporary)
resp, content = client.request(REQUEST_TOKEN_URL, "GET")
if resp['status'] != '200':
raise Exception("Invalid response %s." % resp['status'])
request_token = dict(parse_qsl(content))
print 'Request token'
print ' --> oauth_token = %s' % request_token['oauth_token']
print ' --> oauth_token_secret = %s' % request_token['oauth_token_secret']
print ' --> login_url = %s' % request_token['login_url']
# Redirect to netflix for user authorization
print 'Go to the following link: '
login_url = request_token['login_url']
access_token_url = '%s&oauth_consumer_key=%s' % (login_url, CONSUMER_KEY)
accepted = 'n'
while accepted.lower() == 'n':
accepted = raw_input('Have you authorized me? (y/n) ')
resp, content = client.request(access_token_url, "POST")
token = oauth.Token(request_token['oauth_token'],
request_token['oauth_token_secret'])
client = oauth.Client(consumer, token)
resp, content = client.request(access_token_url, "POST")
access_token = dict(parse_qsl(content))
print "Access Token:"
print " - oauth_token = %s" % access_token['oauth_token']
print " - oauth_token_secret = %s" % access_token['oauth_token_secret']
대단히 감사합니다. 귀하의 권장 사항을 따르고 문제가 발생했습니다. netflix에서는 authorize_url과 함께 oauth_consumer_key를 제출해야합니다. 이 요구 사항이 있기 때문에 라이브러리를 사용하는 동안' oauth_consumer_key is missing '이라는 서버가 400 응답 양식을받습니다. 또한 라이브러리가 훌륭하게 작동하고 다른 라이브러리에 의해 노출 된 복잡성이 제거됩니다. 이 문제를 극복하기위한 제안을 알려주십시오. 다시 한번 감사드립니다. –
lv10
authorize_url의 경우 함수 호출에 필요한 매개 변수를 전달할 수 있으며 이러한 매개 변수가 쿼리 문자열에 추가되므로 다음과 같이 작동 할 수 있습니다.'netflix.get_authorize_url (request_token, ** { 'oauth_consumer_key': '123 ', ...})'. 희망이 친절한 단어에 도움과 감사합니다! – maxcountryman
다시 한번 감사드립니다. 나는 쉘에서 이제 작동하도록 만들었습니다. 그러나 웹 프레임 워크 (Flask)에서 다음과 같은 오류가 계속 발생합니다. KeyError (PROCESS_TOKEN_ERROR.format (key = bad_key, raw = r.content))를 발생시킵니다. 나는 keyError가 의미하는 것을 정말로 이해하지 못합니까? – lv10