Welche Oberfläche Sie möchten
Drei Varianten, und die ersten beiden sind dieselbe Integration. Diese Seite ist die, die Sie selbst bauen.
Ihre Schaltfläche, Ihre Seite. Das Popup ist das Einzige von uns, das Ihr Nutzer sieht, und nur so lange, wie das Netzwerk es braucht.
Was Sie bauen
Vier Schritte. Der erste läuft auf Ihrem Server, der Rest in Ihrer Seite.Erstellen Sie eine Session für ein Netzwerk
mode: "connect", dem
network und der origin auf, auf der Ihre Seite läuft.url zurück, die auf eine Connect-Seite für ein einzelnes Netzwerk zeigt,
und kein token — das Token steckt in der URL. Behandeln Sie die gesamte URL wie ein
Passwort: Sie meldet Ihren Nutzer in seinem User Profile an.Öffnen Sie sie im Click-Handler, synchron
window.open im Click-Handler selbst geöffnet werden. Ein Browser
erlaubt ein Popup nur, solange er den Klick Ihres Nutzers noch verarbeitet, und diese
Erlaubnis überlebt kein await — die URL erst zu laden und im Callback zu öffnen, wird also
zuverlässig vom Popup-Blocker gestoppt.Laden Sie die URL, wenn Sie die Schaltfläche rendern, oder wenn Ihr Nutzer darüber hovert.
Zum Zeitpunkt des Klicks sollten Sie sie bereits haben.Warten Sie auf das Ergebnis
origin übergeben haben, sendet das Popup für alles, was darin passiert, ein Event an
Ihre Seite: connect:success, connect:error, connect:cancelled und dazwischen
Fortschritts-Events. Genau eines dieser drei kommt pro Verbindung an.Link-Completion-Events enthält die vollständige
Event-Tabelle und einen Listener zum Kopieren — listenForOutcome oben ist genau dieses
Snippet. Zwei Teile davon werden leicht vergessen, und beide verursachen echte Bugs:- Prüfen Sie
event.origingegen die Origin der URL, die Sie geöffnet haben. Jede Seite kann eine Message an Ihr Fenster senden, und die Origin ist der einzige Teil einer Message, der nicht gefälscht werden kann. - Pollen Sie
popup.closed, mit einem kurzen Puffer, bevor Sie einen Schluss ziehen. Ein von Ihrem Nutzer von Hand geschlossenes Popup sendet gar nichts, und ohne den Puffer kann eine erfolgreiche Verbindung als abgebrochen gemeldet werden.
Behandeln Sie jede Endung
Hinweise pro Netzwerk
Die meisten Netzwerke sind ein Popup und sonst nichts: Ihr Nutzer klickt, autorisiert beim Netzwerk, und das Popup schließt sich. Dies sind die Ausnahmen, die Sie vor dem Bauen kennen sollten.X erfordert Ihre eigenen API Keys
X erfordert Ihre eigenen API Keys
X-Twitter-OAuth1-Api-Key und X-Twitter-OAuth1-Api-Secret
auf Eine Link Session erstellen.Eine für twitter oder x ohne diese Header erstellte Session wird beim Öffnen des
Popups verweigert: Ihrem Nutzer wird mitgeteilt, dass die Verbindung nicht verfügbar ist, ohne
Formular, und Ihre Seite erhält connect:error mit einer message und ohne code. Das
ist beabsichtigt. Die fehlenden Zugangsdaten sind Ihre, nicht die Ihres Nutzers, und Endnutzer
dürfen nie aufgefordert werden, Ihre API Keys einzugeben.Anders bei Bluesky, wo das App-Passwort die eigene Zugangsinformation des Endnutzers ist —
dieses sammelt die Connect-Seite sehr wohl ein, in einem Formular im Popup.Facebook zeigt vor Metas Login eine Schaltfläche
Facebook zeigt vor Metas Login eine Schaltfläche
network: "facebook" zeigt eine einzelne Schaltfläche im Popup, und Metas eigenes Login
öffnet sich aus diesem Klick — Meta verlangt, dass sein Login durch einen Klick innerhalb der
Seite gestartet wird, die sein SDK hostet. Ihr Nutzer klickt zweimal statt einmal; sonst
ändert sich nichts.Instagram verhält sich genauso, wenn es über eine Facebook-Seite verknüpft wird — also
wenn die Session instagramLinkMethod: "facebook" trägt oder die
Instagram-Login-Einstellung Ihres
Accounts diesen Ablauf wählt. Beim direkten Instagram Login gibt es keine zusätzliche
Schaltfläche.Bluesky und Telegram zeigen Seiteninhalt, keine Weiterleitung
Bluesky und Telegram zeigen Seiteninhalt, keine Weiterleitung
Telegram schließt außerhalb des Browsers ab
Telegram schließt außerhalb des Browsers ab
completedNetworks.Facebook Groups lassen sich auf diesem Weg nicht verbinden
Facebook Groups lassen sich auf diesem Weg nicht verbinden
network: "fbg" gibt also beim Erstellen der
Session code: 508 zurück.WhatsApp ist in Direct Mode verfügbar. Es öffnet Metas Embedded Signup im Popup, und die
Ergebnis-Events sind dieselben wie bei jedem anderen Netzwerk.Native Apps
Eine native App öffnet dieselbeurl, im Systembrowser, und erfährt das Ergebnis durch Pollen
von Eine Link Session abrufen. Setzen Sie origin auf Ihr
eigenes Custom Scheme (myapp://connected), damit die Seite einen Rückweg in Ihre App hat; ein
Custom Scheme kann keine Events empfangen, weil es kein Browserfenster gibt, an das sie gesendet
werden könnten.
- iOS —
ASWebAuthenticationSessionoderSFSafariViewController. - Android — Chrome Custom Tabs.
Was Direct Mode erfordert
- Der Max Pack. Das Erstellen einer Connect-Mode-Session ohne ihn gibt
code: 504zurück, was auch immer der Rest der Anfrage sagt. - Ein
originauf jeder Session. Es gibt keine Allowlist und keinen Registrierungsschritt — Sie senden ihn pro Aufruf. Weglassen gibtcode: 505zurück; ein Wert, der keinehttps-Origin, kein Custom Scheme und nichthttp://localhostist, gibtcode: 506zurück. - Ein
network, das Ihr Account aktiviert hat. Ein unbekannter Name gibtcode: 508zurück; ein bekannter, den Ihr Account nicht aktiviert hat, gibtcode: 509zurück — das können Sie auf Ihrer Seite Soziale Netzwerke beheben. - Kein
allowedSocial. Es kann nicht mitnetworkkombiniert werden (code: 507) — eine Session für ein einzelnes Netzwerk ist bereits ihre eigene Allowlist.
Nächste Schritte
Link-Completion-Events
Verwandte Themen
Eine Link Session erstellen
mode, origin und network sowie die Antwortformen.