Notifications

A notification is a message that is displayed outside your app's UI to provide the user with reminders, communication from other people, or other timely information from your app. Users can tap the notification to open your app or take an action directly from the notification.

The most common parts of a notification are indicated in figure below:

1App Short Name: defined in publish settings

2App Icon: defined in publish settings

3Image: set in MessageData

4Title: set in MessageData

5Text: set in MessageData

Notification actions

Every notification open an appropriate app when tapped. In addition to this default notification action, you can add action buttons that complete an app-related task from the notification, as shown in figure below.

Expandable notification

By default, the notification's text content is truncated to fit on one line. If you want your notification to be longer, you can enable a larger text area that's expandable by setting the text to long_text in MessageData.

You can also create an expandable notification with an image by setting the URL to large_image in MessageData. But, an expandable notification cannot have both fields large_image and long_text

Send messages

You can send push notifications in either of the following ways:

From Fawi Office Notification menu without coding required for sending messages.

Or with more flexibility sending messages from your server by invoking Fawi Notifications APIs.

In all cases, for your application to receive notification you will need to subscribe to the topics, for which you have to use Push Notifications API.

  • Send notifications on the Notifications page on the Fawi Office, that allows you to send messages to all users:
    1. Open Fawi Office.
    2. At the top right of an app card, tap more .
    3. From the app main menu, select Notifications to open the Notifications page.
    4. Fill in the form and click the Send button.
      NOTE: In order to send notifications, you need to subscribe to a Fawi plan.
  • Creating your own notification system by using the Fawi Notification API, that allows you to send notifications to topics.
  • This API is used to send push notifications.

    Protocol: HTTPS

    Method: POST

    URL: https://push.fawiapis.com/send

    Sending push notifications in this way the App Secret Key is needed for sending messages. For details about how to obtain the App Secret Key, please refer to Server Publish Settings.

    Request Parameters (HTTP Header)

    PARAMETERS

    Content-Type: application/json

    Authorization: Bearer <app_secret_key>

    Request Parameters (HTTP body)

    The request body contains data with the following structure(JSON):

    {
        "validate_only"?: boolean,
        "message": {
            object(Message)
        }
    }                                    

    PARAMETERS

    [optional] validate_only: boolean Flag for testing the request without actually delivering the message. The default value is false

    [required] message: object(Message) Notification message structure. Must contain the valid JSON Message payload.

    API request example

    
        POST https://push.fawiapis.com/send HTTP/1.1
    Content-Type: application/json
    Authorization: Bearer your_app_secret_key
    
    {
        "validate_only": false, 
        "message":{
            "to": "geral",
            "data": {
                "title": "New level",
                "text": "Do you want to play now?",         
                "image": "https://www.example.com/data/806962_user.png", 
                "action_buttons": [{"label":"PLAY", "extra_info":"action_play"},
                                   {"label":"DISMISS", "extra_info":"action_play"}]
            }
        }
    }
    Message

    The Message object contains the foolowin stucture:

    {
        "to": string,
        "data": {
            object(MessageData)
        }
    }                                    

    PARAMETERS

    [required] to: string Notification topic

    [required] data: object(MessageData)

    MessageData

    The MessageData object contains the foolowin stucture:

    {
        "title": string,
        "text"?: string,
        "long_text"?: string,
        "image"?: string,
        "large_image"?: string,
        "extra_info"?: string,
        "action_buttons"?: {
            object(ActionButton)[3]
        }
        
    }                                    

    PARAMETERS

    [required] title: string Notification title.

    [optional] text: string Notification text.

    [optional] long_text: string Notification long text for expandable notifications.

    [optional] image: string HTTPS Notification image URL.

    [optional] large_image: string HTTPS Notification large image URL for expandable notifications.

    [optional] extra_info: string Extra data that will be sent to your app when the user opens the notification. These data can be obtained using the Intent API.

    [optional] action_buttons: ActionButton[3] Array of ActionButton objects (max 3).

    ActionButton

    A notification can offer up to three action buttons that allow the user to respond quickly.

    The ActionButton object contains the foolowin stucture:

    {
        "label": string,
        "extra_info": string
    }                                    

    PARAMETERS

    label: string Button text

    extra_info: object(MessageData) Extra data that will be sent to your app when the user opens the notification. These data can be obtained using the Intent API.

    HTTP response

    Your application server must evaluate the message response header and body to interpret the message response sent by the Notification API. Below describes the possible responses.

    Response Header

    200: Notification was successfully processed. The response body will contain more details about the status of the message.

    400: Incorrect parameter.

    401: Authentication failed.

    500: Internal service error.


    Response Body

    {
        "result": string,
        "message": string
    }                                    

    result: string "success" | "error".

    message: string result description.