Verifying Successful Account Connection

Learn how to find out when your user's device or ACS account has connected successfully to Seam.

Use one of the following methods to find out when your user's account has connected successfully to Seam through your app:

  • If you've redirected your app to the Connect Webview, poll or use a webhook to determine when the Connect Webview has completed successfully. You can then retrieve the device or ACS associated with the newly-connected account.

  • If you've embedded the Connect Webview in an iframe, use event listening to determine when to close the iframe. You can then retrieve the device or ACS associated with the newly-connected account.

You do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.


Polling

Use the connect_webview_id to retrieve the Connect Webview instance. You can check the following properties:

PropertyValue when connected successfully

status

authorized

login_successful

true

Also, once the connection is successful, the connect_webview object includes a connected_account_id.

Code:

updated_connect_webview = seam.connect_webviews.get(created_connect_webview.connect_webview_id)

Output:

ConnectWebview(
  connect_webview_id='12345678-1234-1234-1234-123456789012',
  status='authorized',
  login_successful=True,
  connected_account_id='11111111-1111-1111-1111-222222222222',
  ...
)

Webhook

When Seam successfully establishes the connection to the user's device or ACS account, Seam emits a connected_account.connected event. This event includes a connect_webview_id property.

To avoid polling, use a Seam webhook to monitor for a connected_account.connected event with a connect_webview_id that matches the connect_webview_id of the appropriate Connect Webview instance.

Note that the connected_account.connected event also includes a connected_account_id property.

For more information, see Webhooks.

{
  "event_id": "22222222-3333-4444-5555-666666666666",
  "event_type": "connected_account.connected",
  "connected_account_id": "11111111-1111-1111-1111-222222222222",
  "connect_webview_id": "12345678-1234-1234-1234-123456789012",
  "occurred_at": "2024-07-17T05:01:53.157Z",
  ...
}

Event Listening

When you host a Connect Webview in an HTML iframe, the iframe uses window.parent.postMessage to send messages to the parent window that is hosting the iframe. window.parent.postMessage is a cross-origin communication mechanism available in web browsers.

Register an event listener for the parent window containing the iframe to monitor for message events. Specifically, listen for a connect_webview.login_succeeded event. This event indicates that Seam has successfully established the connection to the user's device or ACS account. A connect_webview.login_failed event indicates that the account connection did not complete successfully.

For example:

window.addEventListener(
  "message",
  (event) => {
    if (event.data?.event?.event_type === "connect_webview.login_succeeded") {
      // Do something.
    }
  },
  false
);

Last updated

Logo

© Seam Labs, Inc. All rights reserved.

Revision created on 8/25/2024