2016-02-12 3 views
1

Я новичок в Python, и я бы хотел протестировать Linkedin API. я получил пример аутентификации кода (с помощью oauth2) с этого сайта: https://github.com/ozgur/python-linkedinAuthentification to linkedin API

Я предполагаю, что нет ничего плохого в конфигурации моего приложения на Linkedin:

ID клиента: XXX

Секретный клиент: YYY

Все эти коробки проверяются: r_basicprofile, r_emailaddress, rw_company_admin, w_s зайца

OAuth 2.0 => Авторизованный URL: http://localhost:8000

Вот код:

#-*- coding: utf-8 -*- 

    from linkedin import linkedin 

    API_KEY = 'XXX' 
    API_SECRET = 'YYY' 
    RETURN_URL = 'http://localhost:8000' 
    authentication = linkedin.LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL) 

    print "authentication.authorization_url : " + authentication.authorization_url 
    print "authentication.key : " + authentication.key 
    print "authentication.secret : " + authentication.secret 
    print "authentication.redirect_uri : " + authentication.redirect_uri 
    print "authentication.state : " + authentication.state 
    print authentication.authorization_code 
    print authentication.token 
    print authentication._error 

    application = linkedin.LinkedInApplication(authentication) 

И результат:

authentication.authorization_url: https://www.linkedin.com/uas/oauth2/authorization?scope=&state=a2eb48d9b7b5f94a24dfbf36d498ebdc&redirect_uri=http%3A//localho ул% 3A8000 & response_type = code & client_id = XXX

authentication.key: XXX

authentication.secret: YYY

authentication.redirect_uri: http://localhost:8000

authentication.state: a2eb48d9b7b5f94a24dfbf36d498ebdc

Отсутствует

Отсутствует

Отсутствует

Я не понимаю, почему мой authorization_code является None. Согласно ссылке git hub, redirect_url должен содержать URL + код авторизации. Здесь у меня есть URL-адрес, поэтому я не могу продолжить процесс аутентификации.

Я провел некоторое исследование, но не смог найти ничего. Кто-нибудь знает, что не так с моим кодом или моей конфигурацией?

Спасибо!

ответ

0

Ну, наконец-то я нашел, что в этом плохого!

authentication = linkedin.LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL) 

Это возвращает URL (например: https://www.linkedin.com/uas/oauth2/authorization?scope=r_basicprofile%20r_emailaddress&state=4a8b5b5932f182fff0a1731ebfbb05ef&redirect_uri=http%3A//localhost%3A8000&response_type=code&client_id=XXX). Мне пришлось открыть этот URL-адрес в моем браузере, чтобы войти в мою учетную запись Linkedin. Затем я был перенаправлен на этот URL: http://localhost%3A8000/?code=my_code&state=31624da3ad7331c11def407de0a56cc4

my_code - код, используемый для получения токена.

authentication.authorization_code = 'my_code' 
authentication.get_access_token() 

Как только я получил токен, я мог бы запросить использование API.

Надеюсь, что эта помощь.