Pobierz e-mail z profilu LinkedIn przez API (Przewodnik 2026)
Dowiedz się, jak uzyskać dostęp do kontaktowych adresów e-mail, którymi członkowie LinkedIn zdecydowali się podzielić, korzystając z API Unipile działającego w imieniu uwierzytelnionego użytkownika. Zgodne z przepisami, gotowe dla programistów podejście dla narzędzi CRM, ATS i sprzedaży.
"id_dostawcy": "urn:li:member:123456",
"imię": "Sarah",
"nazwisko": "M.",
"Nagłówek": "Kierownik ds. partnerstw",
"informacje_kontaktowe": {
"email": "sarah.m@acmecorp.com"
},
/* obecne tylko, jeśli udostępnione przez członka */
}
Czy można uzyskać adres e-mail z profilu LinkedIn przez API?
Dlaczego deweloperzy tworzą aplikacje z użyciem interfejsu API danych kontaktowych LinkedIn
Gdy członek LinkedIn udostępnia swój adres e-mail swojej sieci kontaktów, ten szczegół kontaktu staje się cennym sygnałem wzbogacenia dla oprogramowania niższego poziomu. Oto główne zastosowania dla Wzbogacanie profilu na LinkedIn przez API Unipile.
Gdy pierwszy kontakt użytkownika udostępni swój adres e-mail na LinkedIn, Twój CRM może automatycznie Wypełnij lub zaktualizuj rekord kontaktu z potwierdzonym adresem e-mail – bez ręcznego kopiowania i wklejania, bez konieczności korzystania z dostawcy danych stron trzecich. Przypadek użycia CRM
Rekruterzy korzystający z Twojego ATS mają dostęp do adresu e-mail kontaktowego, który kandydat zgodził się udostępnić, dodając to bezpośrednio do akt aplikanta. Skraca czas reakcji i zapewnia świeżość danych bez ręcznego ich pozyskiwania. Przypadek użycia ATS
Narzędzia sprzedaży mogą ujawnić udostępniony adres e-mail potencjalnego klienta do włącz komunikację wielokanałową - kontynuowanie rozmowy mailowej po interakcji na LinkedIn, wszystko w ramach własnego przepływu pracy uwierzytelnionego użytkownika. Żadnych zimnych list danych, żadnych zakupionych baz danych. Przypadek użycia narzędzia sprzedażowego
Budujesz jeden z nich? Unipile zapewnia jedno zunifikowane API dla danych profilowych, wiadomości, zaproszeń i poczty e-mail LinkedIn – działając w imieniu każdego z Twoich uwierzytelnionych użytkowników. Rozpocznij budowanie
Model uwierzytelnionego użytkownika: zgodny z założenia
Unipile działa jako niezależny pośrednik techniczny, działając w imieniu każdego uwierzytelnionego użytkownika. Twoja aplikacja nigdy nie ma bezpośredniego dostępu do poświadczeń LinkedIn – cały przepływ odbywa się za pośrednictwem hostowanej sesji Unipile, ograniczonej do tego, co dany użytkownik już widzi.
aby udostępnić swój adres e-mail
uwierzytelniony użytkownik
do wzbogacania danych CRM / ATS
Użytkownik kończy Przepływ uwierzytelniania hostowany przez Unipile - bezpieczny kreator, który obsługuje sesję LinkedIn całkowicie w ramach infrastruktury Unipile. Twoja aplikacja otrzymuje identyfikator konta, nigdy hasło ani plik cookie. To właściwy sposób obsługi uwierzytelniania stron trzecich: dane uwierzytelniające są zarządzane przez sam przepływ, a nie przechowywane na Twoich serwerach.
Używając identyfikatora konta zwróconego w kroku 1, Twoja aplikacja wywołuje POBIERZ /użytkownicy/profil z identyfikatorem profilu docelowego jako parametrem zapytania. Unipile przekazuje żądanie za pośrednictwem sesji LinkedIn uwierzytelnionego użytkownika – dokładnie tak, jakby ten użytkownik sam otworzył profil. Zobacz pełne rozbicie danych, które można pozyskać z LinkedIn tędy.
profilu właściciela profilu widoczny jest w e-mail_do_kontaktu pole. Jeśli nie, pole jest nieobecne - nie ma żadnego zastępstwa, zgadywania ani danych ze źródeł zewnętrznych. To, co otrzymasz, to dokładnie to, co LinkedIn pokazuje temu użytkownikowi podczas jego własnej sesji. To jest kompatybilne, przejrzyste podejście do uzyskiwania dostępu do danych kontaktowych LinkedIn.
Krok po kroku: połącz konto LinkedIn i pobierz adresy e-mail kontaktów
Cała konfiguracja zajmuje mniej niż 10 minut. Żadne dane uwierzytelniające nie są przechowywane po Twojej stronie – wszystko działa poprzez zaimplementowany przepływ uwierzytelniania Unipile.
Zapisz się na dashboard.unipile.com. Otrzymasz DSN (adres bazowy) i a Klucz API - to jedyne dane uwierzytelniające, które musi przechowywać Twoja aplikacja. Żadnych haseł do LinkedIn, żadnych plików cookie, żadnych tokenów.
Zadzwoń POST /hosted/accounts/link z dostawcy: ["LINKEDIN"] aby wygenerować bezpieczny, hostowany adres URL uwierzytelniania. Wyślij ten adres URL swojemu użytkownikowi - zakończy on logowanie do LinkedIn w ramach hostowanego kreatora Unipile. Żadne dane uwierzytelniające nigdy nie docierają do Państwa serwerów.
Po zakończeniu uwierzytelniania przez użytkownika, Unipile zwraca account_id. Sprawdź status konta przez GET /konta/{account_id} - status powinien brzmieć OPERACYJNY. Połączone konto jest gotowe do wyszukiwania profili w imieniu Twojego użytkownika.
Podaj account_id jako nagłówek i identyfikator profilu LinkedIn jako parametr zapytania. Unipile zwraca pełny obiekt profilu - w tym e-mail_do_kontaktu tylko wtedy, gdy właściciel profilu zdecyduje się udostępnić go swoim kontaktom.
Pobierz profil LinkedIn, E-mail w zestawie
zwijać się --żądanie POBIERZ --url https://api1.unipile.com:13111/api/v1/users/{user_id} \ --nagłówek 'X-API-KEY: {your_api_key}'
Jedno wyszukanie profilu zwraca wszystko, co członek zdecydował się udostępnić, z e-mail na pierwszym planie. Kiedy osoba udostępni swój adres w Informacjach kontaktowych, wraca on w tej samej odpowiedzi, wraz ze stanowiskiem, firmą, lokalizacją i innymi danymi, pobranymi w imieniu uwierzytelnionego użytkownika.
Pobierz e-mail profilu LinkedIn przez API: Node.js, Python, cURL
Wszystkie trzy przykłady podążają tym samym zgodnym wzorcem: uwierzytelnianie hostowane w celu połączenia konta użytkownika, a następnie wyszukiwanie profilu, które zwraca e-mail_do_kontaktu kiedy członek zdecyduje się ją udostępnić. Zobacz Przewodnik po API LinkedIn w Pythonie dla głębszego omówienia pakietu SDK Pythona.
import { UnipileClient } z 'unipile-node-sdk';
// Krok 1: zainicjuj klienta swoim DSN i kluczem API
const klient = nowy UnipileClient(
process.env.UNIPILE_DSN,
process.env.UNIPILE_API_KEY
);
// Krok 2: wygeneruj link uwierzytelniający hostowany, aby użytkownik mógł się połączyć
konto LinkedIn – żadnych danych uwierzytelniających po Twojej stronie
const hostowana_link = czekać klient.konto.utwórzPołączenieAutoryzacyjne({
typ: 'stwórz',
filtruj_dostawców: ['LINKEDIN'],
success_redirect_url: 'https://yourapp.com/callback',
});
// Wyślij hostedLink.url do użytkownika – on tam dokończy uwierzytelnianie
// Krok 3: po zakończeniu uwierzytelniania przez użytkownika pobierz jego profil
// działając w imieniu uwierzytelnionego użytkownika
const accountId = 'acc_otrzymane_z_webhooka';
const profil = czekać klient.użytkownicy.getProfile({
account_id: accountId,
identyfikator: 'urn:li:member:TARGET_PROFILE_ID',
});
// Krok 4: odczytaj contact_info.email - dostępny tylko jeśli członek
// zdecydował się go udostępnić (bez zgadywania, bez awaryjnego rozwiązania)
const e-mail = profil?.dane_kontaktowe?.e-mail ?? null;
konsola.log('Wspólny adres e-mail:', e-mail);import osi, żądania
DSN = osi.środowisko["UNIPILE_DSN"]
Klucz API = osi.środowisko["UNIPILE_API_KEY"]
NAGŁÓWKI = {"X-API-KEY": Klucz API}
# Krok 1 – wygeneruj link do uwierzytelniania w usłudze hostingowej (bez zapisywania danych logowania)
odpowiadaj = żądania.stanowisko(
f"{DSN}/hosted/accounts/link",
nagłówki=NAGŁÓWKI,
json={
"typ": "create",
"filtruj dostawców": ["LINKEDIN"],
"adres_przekierowania_sukces": "https://yourapp.com/callback",
}
)
print("Wyślij ten adres URL do swojego użytkownika:", odpowiadaj.json()["url"])
# Krok 2 – po zakończeniu uwierzytelniania użytkownika pobierz jego profil
# w imieniu uwierzytelnionego użytkownika
IDENTYFIKATOR_KONTA = "acc_otrzymane_z_webhooka"
PROFIL_ID = "urn:li:member:TARGET_PROFILE_ID"
profil_odpowiedz = żądania.uzyskać(
{DSN}/users/profile",
nagłówki={**NAGŁÓWKI, "identyfikator-konta": IDENTYFIKATOR_KONTA},
parametry={"identyfikator": PROFIL_ID}
)
dane = profil_odpowiedz.json()
# Krok 3 – odczytaj kontakt_info.email – brak, jeśli nie udostępniono
e-mail = dane.uzyskać("informacje_kontaktowe", {}).uzyskać("email")
print("Wspólny e-mail:", e-mail lub "nie udostępnione przez tego członka")# Krok 1 – wygeneruj link do uwierzytelniania w usłudze hostingowej
zwijać się -s -X POST "${UNIPILE_DSN}/hosted/accounts/link" \
-H "X-API-KEY: ${UNIPILE_API_KEY}" \
-H "Typ-Zawartości: application/json" \
-d '{
"typ": "utwórz",
"filtry_dostawców": ["LINKEDIN"],
"success_redirect_url": "https://yourapp.com/callback"
}'
# Zwraca { "url": "https://auth.unipile.com/..." }
# Prześlij ten adres URL użytkownikowi – tam przeprowadzi on uwierzytelnianie w serwisie LinkedIn
# Krok 2 – pobranie profilu w imieniu uwierzytelnionego użytkownika
# (zastąp ACCOUNT_ID i PROFILE_ID rzeczywistymi wartościami)
zwijać się -s -X GET \
""${UNIPILE_DSN}/users/profile?identifier=urn:li:member:TARGET_ID"" \
-H "X-API-KEY: ${UNIPILE_API_KEY}" \
-H "id-konta: ACCOUNT_ID"
# Przykładowa odpowiedź (adres e-mail podany tylko wtedy, gdy użytkownik go udostępnił):
# {
# "first_name": "Sarah",
# "nazwisko": "M.",
# "contact_info": {
# "email": "sarah.m@acmecorp.com"
# }
# }e-mail_do_kontaktu pole `email` na endpointcie profilu jest prawidłowym, oficjalnym sposobem dostępu do adresu e-mail, którym członek zdecydował się podzielić.Co możesz, a czego nie możesz uzyskać przez API profilu LinkedIn
Zrozumienie prawdziwego zakresu jest kluczowe przed budową. Zobacz także pełny podział danych, które można pobrać z LinkedIn oraz Wytyczne dotyczące interfejsu API zgodności z LinkedIn.
e-mail_do_kontaktu
POBIERZ /users/relations, wzbogacalne o dane profilowe na poziomie użytkownika
firstname.lastname@company.com zgadywanie
Praca w ramach limitów API LinkedIn
LinkedIn narzuca własne dzienne limity na działania, takie jak zaproszenia, wiadomości i wyświetlenia profilu. Unipile przekaźniki te natywne ograniczenia w sposób przejrzysty i nigdy ich nie podnosi. Jak szybko i jak daleko biegniesz pozostaje decyzja po stronie klienta, z bezpiecznymi, szybszymi i ryzykownymi progami dla każdego połączonego konta, plus automatyczne rozgrzewanie dla nowych kont.
Raport limitów
oczekujący
oczekujący
oczekujący
oczekujący
API Unipile kontra eksport ręczny kontra zewnętrzni brokerzy danych
Istnieje kilka sposobów, w jaki deweloperzy próbują uzyskać adresy e-mail z profili LinkedIn. Poniższa tabela uczciwie je porównuje, abyś mógł wybrać podejście, które odpowiada twojej strategii zgodności.
| Kryteria | API Unipile (w imieniu)Zalecane | Ręczny eksport LinkedIn | Dostawcy danych zewnętrznych |
|---|---|---|---|
| Zgodność z Warunkami Korzystania z LinkedIn | Tak – uwierzytelniona sesja na użytkownika | Tylko ręcznie, nie skalowalne | Ogólnie narusza regulamin |
| Możliwe do zautomatyzowania na dużą skalę | Tak – zasilane przez API, naliczane na użytkownika | Nie - proces ręczny | Tak, ale kruche i ryzykowne |
| Źródło danych e-mail | Dane kontaktowe członkaTylko to, co zdecydowali się udostępnić | Eksport CSV z LinkedInOgraniczony do własnych powiązań | Baza danych zgadnięta / strony trzeciejCzęsto nieświeże, niezweryfikowane |
| Dane logowania przechowywane na twoim serwerze | Nie - przepływ uwierzytelniania hostowany | Użytkownik obsługuje ręcznie | Często tak - wysokie ryzyko |
| Świeżość w czasie rzeczywistym | Na żywo z sesji LinkedIn | Eksport w czasie rzeczywistym | Często przestarzała baza danych |
| Zgodność z RODO / ochrona danych | Członek zdecydował się udostępnić - podstawa prawna | Zależy od zastosowania | Zazwyczaj brak podstawy prawnej do przetwarzania danych |
| Integracja CRM / ATS | API-natywny, gotowy na webhooki | Ręczny import CSV | Zależnie od dostawcy |
Zbuduj swoje kontakty na LinkedIn
wzbogacenie integracji dzisiaj
Unipile zapewnia skonsolidowane API do dostępu do danych kontaktowych udostępnionych przez członków LinkedIn, działając w imieniu każdego z uwierzytelnionych użytkowników. Brak przechowywanych danych uwierzytelniających po stronie użytkownika, brak konieczności utrzymywania oddzielnej bazy danych, brak zgadywania.
LinkedIn E-mail z API Profilu - FAQ
Odpowiedzi na najczęstsze pytania dotyczące pobierania adresów e-mail kontaktów z LinkedIn za pomocą API Unipile - zakres, zgodność i implementacja techniczna.
e-mail_do_kontaktu. W przeciwnym razie pole jest nieobecne. Jest brak niezależnej bazy danych, bez zgadywania i bez danych z zewnętrznych źródeł. Taki jest rzeczywisty zakres - i dlatego podejście jest zgodne.e-mail_do_kontaktu pole jest dostępne tylko dla Połączenia 1. stopnia, które zdecydowały się je udostępnić. Profil drugiego i trzeciego stopnia nie udostępnia tych danych. Jest to ograniczenie na poziomie platformy, a nie ograniczenie Unipile.e-mail_do_kontaktu po prostu nieobecne w odpowiedzi. Użyj opcjonalne łańcuchowanie w JavaScriptprofile?.contact_info?.email ?? null) lub .pobierz() w Pythoniedata.get("contact_info", {}).get("email")i traktuj null jako "nieudostępnione przez tego członka". Nie próbuj stosować obejść, takich jak skanowanie wątków wiadomości za pomocą wyrażeń regularnych – taki wzorzec jest niezgodny z przepisami i daje zawodne wyniki.Nadal masz pytania dotyczące API poczty e-mail LinkedIn? Nasz zespół jest tutaj, aby pomóc.