MCP Unipile · Hosted Auth
Unipile Hosted Auth wdrożony przez agenta kodującego
Użytkownicy łączą własne konto LinkedIn, WhatsApp lub e-mail na stronie hostowanej przez Unipile. Dzięki serwerowi MCP Unipile agent pisze trasę i callback.
7 dni za darmo, bez karty kredytowej.
Agent · crm-app
MCP Unipile połączony
Zaimplementuj Unipile Hosted Auth w tej aplikacji React i Fastify.
Odczyt endpointuPOST /v2/auth/linkschemat wczytany
Dodałem trasę linku i callback. ID konta jest zapisywane w przestrzeni roboczej.
Opisz kolejną funkcję…
Zadanie
Co chcą Państwo osiągnąć
Pozwolić każdemu użytkownikowi produktu połączyć własne konta, tak aby kod nigdy nie widział hasła ani tokenu, i otrzymać ID konta potrzebne w każdym kolejnym żądaniu. Każdy dostawca ma własne logowanie, krok dwuskładnikowy i ekran zgody. Hosted Auth umieszcza to wszystko na jednej stronie udostępnianej przez Unipile, a agent podłącza trzy elementy należące do Państwa aplikacji.
Bez tego
Formularze logowania, tokeny, kaprysy dostawców
Budują Państwo formularz logowania dla każdego dostawcy i przechowują tokeny, których nie chcieli Państwo trzymać.
Monity dwuskładnikowe i ekrany zgody psują przepływ inaczej u każdego dostawcy.
ID konta jest zgadywane z przekierowania i ginie, gdy użytkownik zamknie kartę.
Z serwerem MCP Unipile
Efekt w Państwa aplikacji
Przycisk Połącz, który otwiera hostowany kreator, i trasa callback zapisująca ID konta w przestrzeni roboczej.
Przycisk Połącz ponownie, który używa tego samego endpointu z zapisanym ID konta.
Przepływ zweryfikowany z dostawcą mock w aplikacji Development, zanim zostanie połączone prawdziwe konto.
Prompt, kroki, kod
Prompt dla agenta
Dwa prompty, każdy z endpointami Unipile, które agent czyta i wywołuje, oraz z tym, co trafia do projektu. Ścieżki są pełne, względem bazowego URL API
https://api.unipile.com, z Państwa kluczem z zakresem w nagłówku X-API-KEY .Zaimplementuj Unipile Hosted Auth w tej aplikacji React i Fastify: trasę serwerową tworzącą link uwierzytelniający, trasę callback odczytującą account_id i state oraz zapis account_id w bieżącej przestrzeni roboczej.
Odczyt endpointuPOST /v2/auth/linkschemat wczytany
Wykonanie żądaniaPOST /v2/auth/link201 · link
Dodałem
POST /api/accounts/connect w Fastify: wywołuje endpoint linku uwierzytelniającego z providers, polem expires_on ustawionym piętnaście minut do przodu w ISO 8601 UTC, adresem redirect_uri callbacku i podpisanym state zawierającym ID przestrzeni roboczej. Strona Ustawień w React otwiera zwrócony link. GET /auth/callback odczytuje account_id, provider i state z query i zapisuje konto. Przetestowano z providers: "mock" w aplikacji Development.Link tworzony po stronie serwera, callback zapisujący ID konta
Link tworzy się na serwerze, z kluczem z zakresem; przeglądarka otrzymuje tylko hostowany URL. Gdy użytkownik skończy, Unipile przekierowuje na
redirect_uri z account_id, provider oraz Państwa state w query string. Agent odczytuje te trzy pola z kontraktu, a nie z pamięci, i odpowiednio pisze callback.Endpointy używane przez agenta
POST/v2/auth/linkGET/v2/accounts/{account_id}GET/v2/accounts/
Częsty błąd: Tworzenie linku uwierzytelniającego w przeglądarce. Klucz by wyciekł; frontend otwiera tylko link zwrócony przez serwer.
Dokumentacja linku uwierzytelniającego
Dodaj przycisk Połącz ponownie przy każdym połączonym koncie: wywołaj endpoint linku uwierzytelniającego Unipile w trybie ponownego uwierzytelnienia z zapisanym account_id i obsłuż callback tak samo jak przy pierwszym połączeniu.
Odczyt endpointuPOST /v2/auth/linkgałąź ponownego uwierzytelnienia
Wykonanie żądaniaGET /v2/accounts/{account_id}status: disconnected
Dodałem
POST /api/accounts/:id/reconnect: ten sam endpoint, ten sam redirect_uri, ale body zawiera account_id zamiast providers. Strona Ustawień pokazuje przycisk, gdy status konta jest inny niż running, a istniejący callback obsługuje powrót. Zweryfikowano przez rozłączenie konta mock w aplikacji Development.Ten sam endpoint, zmienia się jedno pole
Link ponownego połączenia przyjmuje
account_id i nie zawiera providers; pierwsze połączenie przyjmuje providers i nie zawiera account_id. Według kontraktu odświeżane jest całe konto, a każdy skonfigurowany produkt uruchamia się ponownie, więc agent wyzwala to na podstawie statusu konta i zachowuje jeden callback dla obu przepływów.Endpointy używane przez agenta
POST/v2/auth/linkGET/v2/accounts/{account_id}POST/v2/auth/checkpoint
Częsty błąd: Wysyłanie jednocześnie providers i account_id. Body to jedna gałąź albo druga, nigdy obie.
Wyzwalanie z account.status.disconnected
Payload
Body żądania, obie gałęzie i odpowiedź
Dosłownie z kontraktu v2, który agent czyta przez serwer. Pierwsze połączenie wymaga trzech pól, a odpowiedź to pojedynczy link.
1Połączenie nowego kontaproviders, expires_on i redirect_uri są wymagane. state wraca w przekierowaniu i w zdarzeniu account.add. account_scope_id przypisuje konto do Scope.POST https://api.unipile.com/v2/auth/link
{ "providers": "*",
"expires_on": "2026-10-01T12:00:00.000Z",
"redirect_uri": "https://app.example.com/auth/callback",
"state": "ws_42.signed",
"account_scope_id": "scope_…" }
2Ponowne uwierzytelnienie istniejącego kontaaccount_id zastępuje providers. Całe konto jest odświeżane, a każdy skonfigurowany produkt uruchamia się ponownie.POST https://api.unipile.com/v2/auth/link
{ "account_id": "acc_…",
"expires_on": "2026-10-01T12:00:00.000Z",
"redirect_uri": "https://app.example.com/auth/callback" }
3Odpowiedź i powrótOdpowiedź to HostedAuthLink. Po kreatorze przekierowanie niesie account_id, provider i state; webhook account.add zawiera ten sam state.{ "object": "HostedAuthLink", "link": "https://auth.unipile.com/…" }
GET https://app.example.com/auth/callback?account_id=acc_…&provider=linkedin&state=ws_42.signed
Od Development do produkcji
Najpierw test w aplikacji Development
Panel Unipile oddziela aplikację Development od Production. Proszę dać agentowi klucz z zakresem z Development i użyć dostawcy mock: cały przepływ, bez prawdziwego konta.
1Uruchom przepływ z providers: "mock"Link utworzony po stronie serwera, callback odczytany, ID konta zapisane.
2Ponowne połączenie konta testowegoRozłącz je, otwórz link ponownego połączenia, status wraca do running.
3Potwierdź account.add, potem przełącz kluczWebhook niesie ten sam state co przekierowanie; dopiero wtedy przejdź na Production.
crm-app · DevelopmentUżywane przez agenta
Scopedev-tests · 2 konta
Klucz
klucz Account API z zakresemKontaTestowe konto LinkedIn, testowa skrzynka Gmail
Webhooki1 endpoint · zdarzenia wiadomości
crm-app · ProductionNietknięte
Scopejeden na przestrzeń roboczą
Klucz
klucze z zakresem, wyłącznie w backendzieKontawłasne konta użytkowników, przez Hosted Auth
Rozwiązywanie problemów
Częste błędy i ich znaczenie
Cztery błędy, które blokują integrację Hosted Auth, i rozwiązanie każdego z nich. Większość wynika ze skopiowania przykładu z v1.
notify_url lub success_redirect_url w body
Żądanie jest odrzucane albo callback nigdy się nie wywołuje.
RozwiązanieTo pola z v1. Body w v2 przyjmuje redirect_uri i state; powiadomienia przechodzą przez endpoint webhooka subskrybujący account.add i account.reconnect.
Odrzucone expires_on
Błąd walidacji daty.
RozwiązaniePole oczekuje daty i godziny ISO 8601 UTC, YYYY-MM-DDTHH:MM:SS.sssZ. Znacznik czasu Unix lub data lokalna są odrzucane.
Obie gałęzie w jednym body
Błąd walidacji providers lub account_id.
RozwiązaniePierwsze połączenie przyjmuje providers i nie zawiera account_id; ponowne połączenie przyjmuje account_id i nie zawiera providers. Wyślij jedną gałąź.
ID konta nigdy nie dociera
Użytkownik zamknął kartę przed przekierowaniem.
RozwiązaniePrzekierowanie to udogodnienie. Źródłem prawdy jest zdarzenie account.add na endpoincie webhooka, które niesie ten sam state. Zapisuj na podstawie zdarzenia, potwierdzaj przekierowaniem.
6000+
Firmy, które wprowadzają innowacje z Unipile
Zaufali nam liderzy branży
1 API
Usprawnij pracę we wszystkich głównych kanałach komunikacji
2 dni
Szybkie uruchomienie integracji przy minimalnej konfiguracji
30%
Mniej pracy i zasobów na utrzymanie
Wbudowane bezpieczeństwo i zgodność
Ochrona klasy enterprise dla danych i procesów Dowiedz się więcej o bezpieczeństwie
SOC 2 Type II
Certyfikat
Niezależnie audytowane mechanizmy bezpieczeństwa, które chronią dane i zapewniają integralność operacyjną.
GDPR
Zgodność
Pełna zgodność z europejskimi przepisami o ochronie danych, dla prywatności użytkowników.
99.9%
Dostępność platformy w ciągu ostatnich 24 miesięcy
24/7
Globalne wsparcie i wydajne API
Hosted Auth: FAQ
Czym jest Hosted Auth, który endpoint tworzy link, jak sprawdzić, że użytkownik skończył, jak połączyć konto ponownie i których dostawców może pokazać kreator.
To strona hostowana przez Unipile, na której użytkownik uwierzytelnia się u swojego dostawcy. Tworzy się link przez
POST /v2/auth/link, przekierowuje na niego użytkownika i otrzymuje account_id. Dane logowania i tokeny nigdy nie przechodzą przez Państwa kod.POST https://api.unipile.com/v2/auth/link, z nagłówkiem X-API-KEY i body zawierającym providers, expires_on i redirect_uri. W v2 nie ma ścieżki /v2/hosted/accounts/link .Dwoma kanałami.
redirect_uri otrzymuje account_id, provider i state jako parametry query. Zdarzenie webhooka account.add niesie ten sam state. Webhook traktuj jako źródło prawdy, a przekierowanie jako element doświadczenia użytkownika.Ten sam endpoint, z
account_id zamiast providers. Według kontraktu całe konto jest odświeżane, a wszystkie skonfigurowane produkty uruchamiają się ponownie. Przepływ wyzwala się ze zdarzenia account.status.disconnected lub ze statusu konta.providers przyjmuje *, filtr rodziny, taki jak *:EMAILS, *:MESSAGING, *:CALENDAR lub *:SOCIAL, albo listę spośród linkedin, whatsapp, google, outlook, imap, telegram i instagram. Do testowania przepływu służy mock .