2013-07-11 13 views
7

Próbowałem tak wiele metod, ale żaden nie wydaje się działać. Pomóż mi nawiązać połączenie z linkedin za pomocą Pythona. Mam wszystkie tokeny. Mam python 2.7.5. Opublikuj próbkę podstawowego kodu, który ustanawia połączenie i otrzymuje nazwę użytkownika.Jak używać linkedin API z pytonem

Poniżej, zrobiłem charakter postaci, jak powiedział przykład, ale to nie działa.

https://github.com/ozgur/python-linkedin < --- Tutaj dostałem api i dokładnie to skopiowałem. Patrz poniżej:

CONSUMER_KEY = '9puxXXXXXXXX'  # This is api_key 
CONSUMER_SECRET = 'brtXoXEXXXXXXXX' # This is secret_key 

USER_TOKEN = '27138ae8-XXXXXXXXXXXXXXXXXXXXXXXXXXX' # This is oauth_token 
USER_SECRET = 'ca103e23XXXXXXXXXXXXXXXXXXXXXXXXXXX' # This is oauth_secret 


from linkedin import linkedin 

# Define CONSUMER_KEY, CONSUMER_SECRET, 
# USER_TOKEN, and USER_SECRET from the credentials 
# provided in your LinkedIn application 

# Instantiate the developer authentication class 

authentication = linkedin.LinkedInDeveloperAuthentication(CONSUMER_KEY, CONSUMER_SECRET, 
                 USER_TOKEN, USER_SECRET, 
                 RETURN_URL, linkedin.PERMISSIONS.enums.values()) 

# Pass it in to the app... 

application = linkedin.LinkedInApplication(authentication) 

# Use the app.... 

application.get_profile() 

otrzymuję ten błąd:

Traceback (most recent call last): 
    File "C:/Documents and Settings/visolank/Desktop/Python/programs/linkedinapi.py", line 8, in <module> 
    from linkedin import linkedin 
    File "C:/Documents and Settings/visolank/Desktop/Python/programs\linkedin\linkedin.py", line 2, in <module> 
    from requests_oauthlib import OAuth1 
    File "C:\Python27\lib\site-packages\requests_oauthlib\__init__.py", line 1, in <module> 
    from .core import OAuth1 
    File "C:\Python27\lib\site-packages\requests_oauthlib\core.py", line 4, in <module> 
from oauthlib.oauth1 import (Client, SIGNATURE_HMAC, SIGNATURE_TYPE_AUTH_HEADER) 
    File "C:\Python27\lib\site-packages\requests_oauthlib\oauthlib\oauth1\__init__.py", line 12, in <module> 
    from .rfc5849 import Client 
    File "C:\Python27\lib\site-packages\requests_oauthlib\oauthlib\oauth1\rfc5849\__init__.py", line 26, in <module> 
    from oauthlib.common import Request, urlencode, generate_nonce 
ImportError: No module named oauthlib.common 
+0

możliwe duplikat [? Dlaczego otrzymuję wyjątek ImportError przy użyciu API LinkedIn dla Python] (http : //stackoverflow.com/questions/17350591/why-am-i-getting-an-importerror-when-using-the-linkedin-api-for-python) –

+0

Wygląda na to, że mówię, że brakuje ci moduł oauthlib. Czy wiesz, czy masz go zainstalowanego? Myślę, że może to wymagać odpowiedniej instalacji oauth2 –

+0

Polecam niektórym osobom przeczytanie odpowiedzi tutaj http://stackoverflow.com/questions/31481272/python-linkedin-api-how-do-i-use-it?rq=1 –

Odpowiedz

8

Rozumiem. Na przyszłość trzeba pobrać oauthlib stąd https://github.com/idan/oauthlib

tutaj jest pełny kod funkcjonalny:

CONSUMER_KEY = '9pux1XcwXXXXXXXXXX'  # This is api_key 
CONSUMER_SECRET = 'brtXoXEXXXXXXXXXXXXX' # This is secret_key 

USER_TOKEN = '27138ae8-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXb' # This is oauth_token 
USER_SECRET = 'ca103e23-XXXXXXXXXXXXXXXXXXXXXXXX7bba512625e' # This is oauth_secret 
RETURN_URL = 'http://localhost:8000' 

from linkedin import linkedin 
from oauthlib import * 

# Define CONSUMER_KEY, CONSUMER_SECRET, 
# USER_TOKEN, and USER_SECRET from the credentials 
# provided in your LinkedIn application 

# Instantiate the developer authentication class 

authentication = linkedin.LinkedInDeveloperAuthentication(CONSUMER_KEY, CONSUMER_SECRET, 
                 USER_TOKEN, USER_SECRET, 
                 RETURN_URL, linkedin.PERMISSIONS.enums.values()) 

# Pass it in to the app... 

application = linkedin.LinkedInApplication(authentication) 

# Use the app.... 

g = application.get_profile() 
print g 
+1

Albo możesz po prostu użyć wbudowanego OAuth2, jak sugerują dokumenty. Jeśli nie możesz uzyskać klucza aplikacji OAuth2 lub po prostu nie lubisz OAuth2 z typowych powodów, jest to właściwa odpowiedź; w przeciwnym razie jest to niepotrzebne. – abarnert

+0

Po prostu drukuje dane mojego profilu, w jaki sposób mogę je wydrukować, a następnie użytkownicy mogą się do niego zalogować i podać kod auth_code, który mogę następnie przekazać do aplikacji, aby uzyskać ich dane? – scottydelta

+1

Wygląda na to, że LinkedIn na stronie aplikacji jest teraz identyfikatorem klienta i tajnym kodem klienta. Brak tajnego tokenu użytkownika lub użytkownika. – multigoodverse