PL
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
Sarah
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.
Zmieniono 4 pliki · przetestowano z providers: "mock"
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 .
Agent · crm-appAplikacja Development
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.Zmieniono 4 pliki · przepływ połączenia przetestowany end to end

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
Agent · crm-appAplikacja Development
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.Zmieniono 2 pliki · wykorzystuje callback pierwszego połączenia

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
Kluczklucz Account API z zakresem
KontaTestowe konto LinkedIn, testowa skrzynka Gmail
Webhooki1 endpoint · zdarzenia wiadomości
crm-app · ProductionNietknięte
Scopejeden na przestrzeń roboczą
Kluczklucze z zakresem, wyłącznie w backendzie
Kontawł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
SOC 2 Type II
Certyfikat
Niezależnie audytowane mechanizmy bezpieczeństwa, które chronią dane i zapewniają integralność operacyjną.
GDPR
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 .