messages_pkg

package
v0.0.0-...-4b08ca5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2018 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

* messagemedia_messages_sdk * *

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MESSAGES

type MESSAGES interface {
	UpdateCancelScheduledMessage(string, *models_pkg.CancelScheduledMessageRequest) (interface{}, error)

	GetMessageStatus(string) (interface{}, error)

	CreateSendMessages(*models_pkg.SendMessagesRequest) (*models_pkg.SendMessagesResponse, error)
}

* Interface for the MESSAGES_IMPL

func NewMESSAGES

func NewMESSAGES() MESSAGES

* Factory for the MESSAGES interaface returning MESSAGES_IMPL

type MESSAGES_IMPL

type MESSAGES_IMPL struct{}

* Client structure as interface implementation

func (*MESSAGES_IMPL) CreateSendMessages

*

  • Submit one or more (up to 100 per request) SMS or text to voice messages for delivery.
  • The most basic message has the following structure:
  • ```json
  • {
  • "messages": [
  • {
  • "content": "My first message!",
  • "destination_number": "+61491570156"
  • }
  • ]
  • }
  • ```
  • More advanced delivery features can be specified by setting the following properties in a message:
  • - ```callback_url``` A URL can be included with each message to which Webhooks will be pushed to
  • via a HTTP POST request. Webhooks will be sent if and when the status of the message changes as
  • it is processed (if the delivery report property of the request is set to ```true```) and when replies
  • are received. Specifying a callback URL is optional.
  • - ```content``` The content of the message. This can be a Unicode string, up to 5,000 characters long.
  • Message content is required.
  • - ```delivery_report``` Delivery reports can be requested with each message. If delivery reports are requested, a webhook
  • will be submitted to the ```callback_url``` property specified for the message (or to the webhooks)
  • specified for the account every time the status of the message changes as it is processed. The
  • current status of the message can also be retrieved via the Delivery Reports endpoint of the
  • Messages API. Delivery reports are optional and by default will not be requested.
  • - ```destination_number``` The destination number the message should be delivered to. This should be specified in E.164
  • international format. For information on E.164, please refer to http://en.wikipedia.org/wiki/E.164.
  • A destination number is required.
  • - ```format``` The format specifies which format the message will be sent as, ```SMS``` (text message)
  • or ```TTS``` (text to speech). With ```TTS``` format, we will call the destination number and read out the
  • message using a computer generated voice. Specifying a format is optional, by default ```SMS``` will be used.
  • - ```source_number``` A source number may be specified for the message, this will be the number that
  • the message appears from on the handset. By default this feature is _not_ available and will be ignored
  • in the request. Please contact <support@messagemeda.com> for more information. Specifying a source
  • number is optional and a by default a source number will be assigned to the message.
  • - ```source_number_type``` If a source number is specified, the type of source number may also be
  • specified. This is recommended when using a source address type that is not an internationally
  • formatted number, available options are ```INTERNATIONAL```, ```ALPHANUMERIC``` or ```SHORTCODE```. Specifying a
  • source number type is only valid when the ```source_number``` parameter is specified and is optional.
  • If a source number is specified and no source number type is specified, the source number type will be
  • inferred from the source number, however this may be inaccurate.
  • - ```scheduled``` A message can be scheduled for delivery in the future by setting the scheduled property.
  • The scheduled property expects a date time specified in ISO 8601 format. The scheduled time must be
  • provided in UTC and is optional. If no scheduled property is set, the message will be delivered immediately.
  • - ```message_expiry_timestamp``` A message expiry timestamp can be provided to specify the latest time
  • at which the message should be delivered. If the message cannot be delivered before the specified
  • message expiry timestamp elapses, the message will be discarded. Specifying a message expiry
  • timestamp is optional.
  • - ```metadata``` Metadata can be included with the message which will then be included with any delivery
  • reports or replies matched to the message. This can be used to create powerful two-way messaging
  • applications without having to store persistent data in the application. Up to 10 key / value metadata data
  • pairs can be specified in a message. Each key can be up to 100 characters long, and each value up to
  • 256 characters long. Specifying metadata for a message is optional.
  • The response body of a successful POST request to the messages endpoint will include a ```messages```
  • property which contains a list of all messages submitted. The list of messages submitted will
  • reflect the list of messages included in the request, but each message will also contain two new
  • properties, ```message_id``` and ```status```. The returned message ID will be a 36 character UUID
  • which can be used to check the status of the message via the Get Message Status endpoint. The status
  • of the message which reflect the status of the message at submission time which will always be
  • ```queued```. See the Delivery Reports section of this documentation for more information on message
  • statues.
  • *Note: when sending multiple messages in a request, all messages must be valid for the request to be successful.
  • If any messages in the request are invalid, no messages will be sent.*
  • @param *models_pkg.SendMessagesRequest body parameter: Required
  • @return Returns the *models_pkg.SendMessagesResponse response from the API call

func (*MESSAGES_IMPL) GetMessageStatus

func (me *MESSAGES_IMPL) GetMessageStatus(
	messageId string) (interface{}, error)

*

  • Retrieve the current status of a message using the message ID returned in the send messages end point.
  • A successful request to the get message status endpoint will return a response body as follows:
  • ```json
  • {
  • "format": "SMS",
  • "content": "My first message!",
  • "metadata": {
  • "key1": "value1",
  • "key2": "value2"
  • },
  • "message_id": "877c19ef-fa2e-4cec-827a-e1df9b5509f7",
  • "callback_url": "https://my.callback.url.com",
  • "delivery_report": true,
  • "destination_number": "+61401760575",
  • "scheduled": "2016-11-03T11:49:02.807Z",
  • "source_number": "+61491570157",
  • "source_number_type": "INTERNATIONAL"
  • "message_expiry_timestamp": "2016-11-03T11:49:02.807Z",
  • "status": "enroute"
  • }
  • ```
  • The status property of the response indicates the current status of the message. See the Delivery
  • Reports section of this documentation for more information on message statues.
  • *Note: If an invalid or non existent message ID parameter is specified in the request, then
  • a HTTP 404 Not Found response will be returned*
  • @param string messageId parameter: Required
  • @return Returns the interface{} response from the API call

func (*MESSAGES_IMPL) UpdateCancelScheduledMessage

func (me *MESSAGES_IMPL) UpdateCancelScheduledMessage(
	messageId string,
	body *models_pkg.CancelScheduledMessageRequest) (interface{}, error)

*

  • Cancel a scheduled message that has not yet been delivered.
  • A scheduled message can be cancelled by updating the status of a message from ```scheduled```
  • to ```cancelled```. This is done by submitting a PUT request to the messages endpoint using
  • the message ID as a parameter (the same endpoint used above to retrieve the status of a message).
  • The body of the request simply needs to contain a ```status``` property with the value set
  • to ```cancelled```.
  • ```json
  • {
  • "status": "cancelled"
  • }
  • ```
  • *Note: Only messages with a status of scheduled can be cancelled. If an invalid or non existent
  • message ID parameter is specified in the request, then a HTTP 404 Not Found response will be
  • returned*
  • @param string messageId parameter: Required
  • @param *models_pkg.CancelScheduledMessageRequest body parameter: Required
  • @return Returns the interface{} response from the API call

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL