Sample code for 30+ languages & platforms
Lua

Twilio Send SMS (using Chilkat HTTP)

See more Twilio Examples

Send an outgoing SMS message.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

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

local http = chilkat.Http.new()

-- 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.login = "TWILIO_ACCOUNT_SID"
http.password = "TWILIO_AUTH_TOKEN"

local req = chilkat.HttpRequest.new()
req.http_verb = "POST"
req.path = "/2010-04-01/Accounts/TWILIO_ACCOUNT_SID/Messages.json"
req.content_type = "application/x-www-form-urlencoded"
req:add_param("From", "+15005550006")
req:add_param("Body", "body")
req:add_param("To", "+15005551212")

local resp = chilkat.HttpResponse.new()
local success = http:http_req("https://api.twilio.com/2010-04-01/Accounts/TWILIO_ACCOUNT_SID/Messages.json", req, resp)
if not success then
    print(http.last_error_text)
    return
end

local sbResponseBody = chilkat.StringBuilder.new()
resp:get_body_sb(sbResponseBody)
local jResp = chilkat.JsonObject.new()
jResp:load_sb(sbResponseBody)
jResp.emit_compact = false

print("Response Body:")
print(jResp:emit())

-- A 201 status code indicates success.
local respStatusCode = resp.status_code
print("Response Status Code = " .. respStatusCode)
if respStatusCode >= 400 then
    print("Response Header:")
    print(resp.header)
    print("Failed.")
    return
end

-- 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

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