Go SDK

Installation

The Unimatrix SDK for Golang uses Go Modules, which is available from the public Github repository.

Run the following command to add uni-go-sdk as a dependency to your project:

go get github.com/unimtx/uni-go-sdk

Usage

The following example shows how to use the Unimatrix Go SDK to interact with Unimatrix services.

Initialize a client

package main

import (
    "fmt"
    "github.com/unimtx/uni-go-sdk"
)

func main() {
    client := uni.NewClient("your access key id", "your access key secret") // if using simple auth mode, just pass in the first parameter
}

or you can configure your credentials by environment variables:

export UNIMTX_ACCESS_KEY_ID=your_access_key_id
export UNIMTX_ACCESS_KEY_SECRET=your_access_key_secret

Send SMS

Send a text message to a single recipient.

package main

import (
    "fmt"
    "github.com/unimtx/uni-go-sdk"
)

func main() {
    client := uni.NewClient()

    res, err := client.Messages.Send(&uni.MessageSendParams{
        To: "+1206880xxxx",  // in E.164 format
        Text: "Your verification code is 2048.",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res)
    }
}

Send a message using a template with variables.

client.Messages.Send(&uni.MessageSendParams{
    To: "+1650253xxxx",
    Signature: "Unimatrix",
    TemplateId: "pub_verif_en_basic2",
    TemplateData: map[string]string {"code": "2048"},
})

Send OTP

Send a one-time passcode (OTP) to a recipient. The following example will send a automatically generated verification code to the user.

package main

import (
    "fmt"
    "github.com/unimtx/uni-go-sdk"
)

func main() {
    client := uni.NewClient()

    res, err := client.Otp.Send(&uni.OtpSendParams{
        To: "+1206880xxxx",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res)
    }
}

Verify OTP

Verify the one-time passcode (OTP) that a user provided. The following example will check whether the user-provided verification code is correct.

package main

import (
    "fmt"
    "github.com/unimtx/uni-go-sdk"
)

func main() {
    client := uni.NewClient()

    res, err := client.Otp.Verify(&uni.OtpVerifyParams{
        To: "+1206880xxxx",
        Code: "123456", // the code user provided
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Valid)
    }
}