Nexmo Grails Plugin

Download .zip   Download .tar.gz   View on GitHub

This plugin gives any Grails application the ability to send SMS messages and outgoing phone calls with text-to-speech using Nexmo's API.

Installation

You can add this plugin to your application by adding the following to your BuildConfig.groovy file:

plugins {
  compile ":nexmo:1.0" // Add this line
}

Methods

sendSms(String to, String text, String from)

This method allows you to send an SMS message to a mobile number.

  • Parameters
    • to - The mobile number in international format
    • text - Body of the text message (with a maximum length of 3200 characters)
    • from (optional) - The number to send from, defaults to the default_from number in NexmoConfig.groovy.
  • Returns
    • status - The status code of the message
    • id - The ID of the message

call(String to, String text, String from)

This method uses text-to-speech to call your recipient and deliver a message.

  • Parameters
    • to - The phone number to send the call to, in International Format
    • text - The message to deliver during the call
    • from (optional) - The number to send the call from. Must be a voice enabled inbound number associated with your account
  • Returns
    • status - The status code of the message
    • id - The ID of the message

Usage

Set the configuration in your Config.groovy file, as shown below:

nexmo {
  api {
    key    = "abcde123" // Your Nexmo API Key
    secret = "fghij456" // Your Nexmo API Secret
  }

  sms {
    default_from = "15005551234" // Your default from telephone number for SMS
  }
}

You can then proceed to use the plugin in a Grails controller or service by injecting the NexmoService bean, and calling the sendSms method.

Example

class ExampleController {

  // Inject the service
  def nexmoService

  def index() {
    def smsResult
    def callResult

    try {
      // Send the message "What's up?" to 1-500-123-4567
      smsResult  = nexmoService.sendSms("15001234567", "What's up?")

      // Call the number and tell them a message
      callResult = nexmoService.call("15001234567", "Have a great day! Goodbye.")

    catch (NexmoException e) {
      // Handle error if failure
    }
  }
}

Here is an example response:

// SMS
[ status: "0", id: "00000125" ]

// Call
[ status: "0", id: "14b75f2246e7c1a17d345449a20d93e5" ]