Publishing Messages Using a Message Structure

Description

  • API name

    Publish

  • Function

    Use the message structure to publish a message to a topic. After the message ID is returned, the message has been saved and is to be pushed to the subscribers of the topic. This API allows you to send different message content to different types of subscribers.

URI

  • URI format

    POST /v2/{project_id}/notifications/topics/{topic_urn}/publish

  • Parameter description

    Parameter

    Mandatory

    Type

    Description

    project_id

    Yes

    String

    Project ID

    See Obtaining a Project ID.

    topic_urn

    Yes

    String

    Unique resource ID of the topic. You can obtain it by referring to Querying Topics.

Request

  • Parameter description

    Parameter

    Mandatory

    Type

    Description

    subject

    No

    String

    Message subject, which is presented as the email subject when SMN sends messages to email subscribers

    The message subject cannot exceed 512 bytes.

    message_structure

    Yes

    String

    Message structure, which contains JSON strings

    email, sms, http, and https are supported.

    The default protocol is mandatory. If the system fails to match any other protocols, the default message is sent.

    Note

    Three message formats are supported:

    • message

    • message_structure

    • message_template_name

    If the three formats are specified at the same time, they take effect in the following sequence: message_structure > message_template_name > message.

    time_to_live

    No

    String

    The maximum retention period of a message in SMN

    After the retention period expires, SMN does not send this message.

    Unit: second

    Default retention period: 3600 (one hour)

    The retention period must be a positive integer less than or equal to 604,800 (3600 x 24 x 7).

  • Example request

    POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/urn:smn:regionId: f96188c7ccaf4ffba0c9aa149ab2bd57:test_create_topic_v2/publish
    
    {
        "subject": "test message v2",
        "time_to_live": "3600",
        "message_structure": "{\n  \"default\": \"xxx\",\n  \"APNS\": \"{\\\"aps\\\":{\\\"alert\\\":{\\\"title\\\":\\\"xxx\\\",\\\"body\\\":\\\"xxx\\\"}}}\"\n}"
    }
    

    Note

    For example, a topic has two types of subscriptions, SMS and email. After the API is called to publish messages, the email subscriber will receive message "abc", and the SMS subscriber will receive the default message "test v2 default".

Response

  • Parameter description

    Parameter

    Type

    Description

    request_id

    String

    Request ID, which is unique

    message_id

    String

    Message ID, which is unique

  • Example response

    {
        "message_id": "bf94b63a5dfb475994d3ac34664e24f2",
        "request_id": "9974c07f6d554a6d827956acbeb4be5f"
    }
    

Returned Value

See Returned Value.

Error Codes

See Error Codes.