Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Opening a widget inside the Flock client
  • Opening a URL in the system browser;
  • Sending an event to the event listener URL.

Opening a Widget

Apps You can use widgets to render web applications inside an iframe or a webview within Flock. They can not only do everything that a normal webapp can, but also interact with the Flock client hosting them.

To know more about setting up open a widget, see How do I configure a widget?the following info is required:

  • URL of the widget
  • Type of widget in desktop – it can be either modal or sidebar
  • Type of widget in mobile – this is usually optional. The only acceptable value is modal.

Opening the Browser

To You can also choose to open a URL in the browser, you need to . To open the browser, provide the following:

  • The URL to open.
  • Whether to send event context or not. When enabled, event parameters are appended to the URL.

You can open the browser in one of the following ways:

...

 Widgets can also launch the browser using flock.js.

Code Block
languagejs
titleOpening the browser using flock.js
flock.openBrowser("<url>", true);

...

FlockML's action tag can also be used to launch the browser:

Code Block
languagexml
titleOpening the browser using FlockML
<flockml>click <action type="openBrowser" url="<url>" sendContext="true">here</action> to open the browser.</flockml>

Sending an event to the event listener URL

You can also choose to silently Or if you prefer to remain silent, you can send an event to your the event listener URL instead.

How do I configure a client action?

Different controls have different ways in which their respective client actions can be configured:

  • For an attachment picker, chat tab button, launcher button or a slash command, the client action is configured in the dev dashboard
  • For an attachment button, the client action is configured using an object provided along with other button attributes when creating the Attachment.
  • From inside a widget, a client action can be triggered by calling flock.openWidget or flock.openBrowser methods provided by flock.js.
  • FlockML view can trigger a client action by using the action element.

What happens when a client action is triggered?

An event is generated every time a client action is triggered.

The events sent by various controls when a client action is triggered are listed below:

The event name along with its attribute provides sufficient context for the client action.

How do I configure a client action?

There are multiple ways to configure client actions in Flock, all of which are described below.

Developer Dashboard

Use the developer dashboard to configure an action for a Slash CommandLauncher ButtonChat Tab Button or Attachment Picker. Once you have enabled the control, you can select the appropriate action and provide any additional info that's required.

Opening a WidgetImage Added

Attachment Buttons

Client actions for attachment buttons are configured while creating the corresponding Attachment. Use the action property of a button to set the appropriate ActionConfig object.

Code Block
languagejs
titleConfiguring Actions in Attachment Buttons
linenumberstrue
{
    "description": "attachment description",
    "views": {
        "widget": { "src": "<widget url>", "width": 400, "height": 400 }
    },
    "buttons": [{
        "name": "<button 1>",
        "icon": "<icon 1 url>", 
        "action": { "type": "openWidget", "desktopType": "modal", "mobileType": "modal", "url": "<action url>" },
        "id": "<button id 1>"
    }, {
        "name": "<button 2>", 
        "icon": "<icon 2 url>", 
        "action": { "type": "openBrowser", "url": "<url>", "sendContext": true }
        "id": "<button id 2>"
    }]
}

flock.js

Widgets can open another widget or the browser using flock.js.

Code Block
languagejs
titleOpening a widget using flock.js
flock.openWidget("<widget url>", "modal")
Code Block
languagejs
titleOpening the browser using flock.js
flock.openBrowser("<url>", true);

FlockML

FlockML's action tag can also be used to trigger client actions:

Code Block
languagexml
titleOpening a widget using FlockML
<flockml>click <action type="openWidget" url="<url>" desktopType="sidebar" mobileType="modal">here</action> to launch a widget.</flockml>
Code Block
languagexml
titleOpening the browser using FlockML
<flockml>click <action type="openBrowser" url="<url>" sendContext="true">here</action> to open the browser.</flockml>
Code Block
languagexml
titleSending event to the event listener using FlockML
<flockml>client <action type="sendEvent">here</action> to send an event to the event listener URL.</action>

Can client actions be triggered for users who haven't installed the app?

...

If you verify that the event token sent with the corresponding event is really signed using your app's secret (you should always do this anyways), you can be certain that the event originated from Flock and was actually triggered by the user whose userId is included in the event token (even if they haven't installed the app).