Documentation
¶
Overview ¶
* messagemedia_messages_sdk * *
Index ¶
- type MESSAGES
- type MESSAGES_IMPL
- func (me *MESSAGES_IMPL) CreateSendMessages(body *models_pkg.SendMessagesRequest) (*models_pkg.SendMessagesResponse, error)
- func (me *MESSAGES_IMPL) GetMessageStatus(messageId string) (interface{}, error)
- func (me *MESSAGES_IMPL) UpdateCancelScheduledMessage(messageId string, body *models_pkg.CancelScheduledMessageRequest) (interface{}, error)
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 ¶
func (me *MESSAGES_IMPL) CreateSendMessages( body *models_pkg.SendMessagesRequest) (*models_pkg.SendMessagesResponse, error)
*
* 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