Sample code for 30+ languages & platforms
Go

Twilio Send SMS (using Chilkat HTTP)

See more Twilio Examples

Send an outgoing SMS message.

Chilkat Go Downloads

Go
    success := false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    http := chilkat.NewHttp()

    // Implements the following CURL command:

    // (See information about using test credentials and phone numbers:  https://www.twilio.com/docs/iam/test-credentials)

    // curl -X POST https://api.twilio.com/2010-04-01/Accounts/TWILIO_ACCOUNT_SID/Messages.json \
    // --data-urlencode "From=+15005550006" \
    // --data-urlencode "Body=body" \
    // --data-urlencode "To=+15005551212" \
    // -u TWILIO_ACCOUNT_SID:TWILIO_AUTH_TOKEN

    // Use the following online tool to generate HTTP code from a CURL command
    // Convert a cURL Command to HTTP Source Code

    http.SetLogin("TWILIO_ACCOUNT_SID")
    http.SetPassword("TWILIO_AUTH_TOKEN")

    req := chilkat.NewHttpRequest()
    req.SetHttpVerb("POST")
    req.SetPath("/2010-04-01/Accounts/TWILIO_ACCOUNT_SID/Messages.json")
    req.SetContentType("application/x-www-form-urlencoded")
    req.AddParam("From","+15005550006")
    req.AddParam("Body","body")
    req.AddParam("To","+15005551212")

    resp := chilkat.NewHttpResponse()
    success = http.HttpReq("https://api.twilio.com/2010-04-01/Accounts/TWILIO_ACCOUNT_SID/Messages.json",req,resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        req.DisposeHttpRequest()
        resp.DisposeHttpResponse()
        return
    }

    sbResponseBody := chilkat.NewStringBuilder()
    resp.GetBodySb(sbResponseBody)
    jResp := chilkat.NewJsonObject()
    jResp.LoadSb(sbResponseBody)
    jResp.SetEmitCompact(false)

    fmt.Println("Response Body:")
    fmt.Println(*jResp.Emit())

    // A 201 status code indicates success.
    respStatusCode := resp.StatusCode()
    fmt.Println("Response Status Code = ", respStatusCode)
    if respStatusCode >= 400 {
        fmt.Println("Response Header:")
        fmt.Println(resp.Header())
        fmt.Println("Failed.")
        http.DisposeHttp()
        req.DisposeHttpRequest()
        resp.DisposeHttpResponse()
        sbResponseBody.DisposeStringBuilder()
        jResp.DisposeJsonObject()
        return
    }

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {
    //   "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    //   "api_version": "2010-04-01",
    //   "body": "body",
    //   "date_created": "Thu, 30 Jul 2015 20:12:31 +0000",
    //   "date_sent": "Thu, 30 Jul 2015 20:12:33 +0000",
    //   "date_updated": "Thu, 30 Jul 2015 20:12:33 +0000",
    //   "direction": "outbound-api",
    //   "error_code": null,
    //   "error_message": null,
    //   "from": "+15017122661",
    //   "messaging_service_sid": "MGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    //   "num_media": "0",
    //   "num_segments": "1",
    //   "price": null,
    //   "price_unit": null,
    //   "sid": "MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    //   "status": "sent",
    //   "subresource_uris": {
    //     "media": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Media.json"
    //   },
    //   "to": "+15558675310",
    //   "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json"
    // }

    // Sample code for parsing the JSON response...
    // Use the following online tool to generate parsing code from sample JSON:
    // Generate Parsing Code from JSON

    account_sid := jResp.StringOf("account_sid")
    api_version := jResp.StringOf("api_version")
    body := jResp.StringOf("body")
    date_created := jResp.StringOf("date_created")
    date_sent := jResp.StringOf("date_sent")
    date_updated := jResp.StringOf("date_updated")
    direction := jResp.StringOf("direction")
    error_code := jResp.StringOf("error_code")
    error_message := jResp.StringOf("error_message")
    from := jResp.StringOf("from")
    messaging_service_sid := jResp.StringOf("messaging_service_sid")
    num_media := jResp.StringOf("num_media")
    num_segments := jResp.StringOf("num_segments")
    price := jResp.StringOf("price")
    price_unit := jResp.StringOf("price_unit")
    sid := jResp.StringOf("sid")
    status := jResp.StringOf("status")
    subresource_urisMedia := jResp.StringOf("subresource_uris.media")
    v_to := jResp.StringOf("to")
    uri := jResp.StringOf("uri")

    http.DisposeHttp()
    req.DisposeHttpRequest()
    resp.DisposeHttpResponse()
    sbResponseBody.DisposeStringBuilder()
    jResp.DisposeJsonObject()