Create a Connect Webview

To allow a user to sign in, you need to create a connect_webview . After creating the webview, you'll receive a URL that you can use to open an iframe or new window containing a login page for your us

An example of what the webview will look like to your user:

Create a connect_webview

POST https://connect.getseam.com/connect_webviews/create

Request Body

Name
Type
Description

accepted_providers*

string[]

Array of accepted

device provider keys

. See

Device Provider Keys

custom_redirect_url

String

URL to redirect user to after provider login is complete

custom_redirect_failure_url

type: string Optional

Alternative URL to redirect the user on error. If this is not set, falls back to

custom_redirect_url

device_selection_mode

String

'none', 'single' or 'multiple'

{
    "connect_webview": {
    	"connect_webview_id": "123e4567-e89b-12d3-a456-426614174000",
    "custom_metadata": {},
	"custom_redirect_url": null,
	"custom_redirect_failure_url": null,
	"url": "https://connect.getseam.com/v1/connect_webviews/view?connect_webview_id=02454094-1cab-4693-babc-afa9e1c55f09&auth_token=P7XLD4hYXva24WqwSKTC4pKQMP7v3zWUz",
	"workspace_id": "84dda4b8-f327-4d97-a720-e0504a13a441",
	"device_selection_mode": "none",
	"accepted_providers": [
		"smartthings"
	],
	"accepted_devices": [],
	"any_provider_allowed": false,
	"any_device_allowed": null,
	"created_at": "2022-02-07T18:33:50.271Z",
	"login_successful": false,
	"status": "pending"
    }
}

Code Example

seam.connect_webviews.create(
  accepted_providers: ["smartthings"]
)

# <Seam::ConnectWebview:0x006a950
#   url="https://connect.getseam.com/connect_webviews/view?connect_webview_id=123e4567-e89b-12d3-a456-426614174000&auth_token=q123DASDASKd23DADdad29"
#   status="pending"         
#   created_at="2022-07-06T23:20:09.785729+00:00"
#   workspace_id="123e4567-e89b-12d3-a456-426614174000"
#   accepted_devices=[]
#   login_successful=false
#   accepted_providers=["smartthings"]
#   any_device_allowed=nil
#   connect_webview_id="123e4567-e89b-12d3-a456-426614174000"
#   custom_redirect_url=nil
#   custom_redirect_failure_url=nil
#   any_provider_allowed=false
#   device_selection_mode="none">

You should make a new connect_webview for each unique login request: Each connect_webview tracks the user that signed in with it, you'll get an error if you re-use a webview for the same user twice, or if you use the same webview for multiple users.

Parameters

accepted_providers

type: string[]

Array of accepted device provider keys. See Device Provider Keys

custom_redirect_url

type: string Optional

URL to redirect user to after provider login is complete

custom_redirect_failure_url

type: string

Optional

Alternative URL to redirect the user on error. If this is not set, falls back to custom_redirect_url

device_selection_mode

type: 'none'

'multiple'

Response

This section shows the JSON response returned by the API. Since each language encapsulates this response inside objects specific to that language and/or implementation, the actual type in your language might differ from what’s written here.

JSON format

{
    "connect_webview": {
    	"connect_webview_id": "123e4567-e89b-12d3-a456-426614174000",
	"custom_redirect_url": null,
	"url": "https://connect.getseam.com/v1/connect_webviews/view?connect_webview_id=02454094-1cab-4693-babc-afa9e1c55f09&auth_token=P7XLD4hYXva24WqwSKTC4pKQMP7v3zWUz",
	"workspace_id": "84dda4b8-f327-4d97-a720-e0504a13a441",
	"device_selection_mode": "none",
	"accepted_providers": [
		"smartthings"
	],
	"accepted_devices": [],
	"any_provider_allowed": false,
	"any_device_allowed": null,
	"created_at": "2022-02-07T18:33:50.271Z",
	"login_successful": false,
	"custom_redirect_url": null,
  	"custom_redirect_failure_url": null,
	"status": "pending"
    }
}

Last updated

Was this helpful?