2015-08-31 28 views
11

Mam zaimplementowane logowanie z LinkedIn i otrzymuję access token po pomyślnym zalogowaniu przez session.getAccessToken().toString(). Teraz potrzebuję pełnego profilu użytkownika i jego listy połączeń na koncie. Ale nie mogę odzyskać tych informacji z LinkedIn.Jak uzyskać dane użytkownika po zalogowaniu się na LinkedIn

Wołam swojego klienta REST API wezwanie, które stwierdzono w official document jak ten

https://api.linkedin.com/v1/people/~

w tym ja przechodząc mój token dostępu jako oauth2_access_token że mam po zalogowaniu. Ale w odpowiedzi otrzymuję

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<error> 
    <status>401</status> 
    <timestamp>1440998578838</timestamp> 
    <request-id>P6GDCHJ13P</request-id> 
    <error-code>0</error-code> 
    <message>Unable to verify access token</message> 
</error> 

Próbowałem już różnych rozwiązań jak podano tutaj:

LinkedIn OAuth2: "Unable to verify access token"

https://github.com/lepture/flask-oauthlib/issues/35

How to Retrieve all possible information about a LinkedIn Account ? (API using C#)

Odpowiedz

0

Dostęp do danych profilu pełnych i połączeń jest ogranicza się do programistów uczestniczących w niektórych programach partnerskich LinkedIn, więc Ty nie będzie mógł zażądać tokenu dostępu, który udziela tych informacji, chyba że jesteś w takim programie.

Jeśli jesteś partnerem, powinieneś skontaktować się z przedstawicielem technicznym partnera LinkedIn. Jeśli nie, możesz ubiegać się o status partnera LinkedIn tutaj: https://developer.linkedin.com/partner-programs/apply

+0

Jak mogę uzyskać podstawowe informacje o profilu użytkownika. –

0

Aby uzyskać podstawowe informacje, możesz przejrzeć zapytania, które robi LinkedIn, gdy wyświetlasz profil i połączenia, dzięki czemu możesz po prostu wykonywać te same połączenia i korzystać z odpowiedzi JSON w Twojej aplikacji. Możesz nawet użyć połączenia wyszukiwania, aby znaleźć link do profilu.

+0

jak wykonać to żądanie i pobrać odpowiedź JSON? Dzwonię pod https://api.linkedin.com/v1/people/~ i widzisz odpowiedź powyżej. –

5

Według oficjalnej dokumentacji to stwierdził, że aby LinkedIn REST API połączeń trzeba zadzwonić przez APIHelper.getRequest() metody lub APIHelper.postRequest() dla GET i POST rozmowy odpowiednio; i pobrać wszystkie wymagane dane użytkownika, aby utworzyć URL REST, który jest już podany w ich documentation. Oto krótki przykład przynieść użytkownikowi basic_profile dane:

String url = "https://api.linkedin.com/v1/people/~:(id,first-name,last-name)"; 

APIHelper apiHelper = APIHelper.getInstance(getApplicationContext()); 
apiHelper.getRequest(this, url, new ApiListener() { 
    @Override 
    public void onApiSuccess(ApiResponse apiResponse) { 
     // Success! 
     Log.d("linkedin response for data", apiResponse.getResponseDataAsJson().toString()); 
    } 

    @Override 
    public void onApiError(LIApiError liApiError) { 
     // Error making GET request! 
    } 
}); 

można odnieść oficjalnej dokumentacji ponad here do pełnej szczegółowości

0

Jego proste, wystarczy nazwać tak:

https://api.linkedin.com/v1/people/~?oauth2_access_token=ACCESS-TOKEN-GOES-HERE