Sample code for 30+ languages & platforms
Xbase++

Twilio List Log Messages

See more Twilio Examples

Fetch the log containing information about SMS messages previously sent (or failed to be sent).

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oSbResponseBody
LOCAL oJson
LOCAL nRespStatusCode
LOCAL cAccount_sid
LOCAL cApi_version
LOCAL cBody
LOCAL cDate_created
LOCAL cDate_sent
LOCAL cDate_updated
LOCAL cDirection
LOCAL cError_code
LOCAL cError_message
LOCAL cFrom
LOCAL cMessaging_service_sid
LOCAL cNum_media
LOCAL cNum_segments
LOCAL cPrice
LOCAL cPrice_unit
LOCAL cSid
LOCAL cStatus
LOCAL cSubresource_urisMedia
LOCAL cSubresource_urisFeedback
LOCAL cV_to
LOCAL nEnd
LOCAL cFirst_page_uri
LOCAL cNext_page_uri
LOCAL nPage
LOCAL nPage_size
LOCAL cPrevious_page_uri
LOCAL nStart
LOCAL cUri
LOCAL i
LOCAL nCount_i

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

//  Implements the following CURL command:

//  curl -X GET 'https://api.twilio.com/2010-04-01/Accounts/TWILIO_ACCOUNT_SID/Messages.json?PageSize=20' \
//  -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

oHttp:Login := "TWILIO_ACCOUNT_SID"
oHttp:Password := "TWILIO_AUTH_TOKEN"

oSbResponseBody := CreateObject("Chilkat.StringBuilder")
nSuccess := oHttp:QuickGetSb("https://api.twilio.com/2010-04-01/Accounts/TWILIO_ACCOUNT_SID/Messages.json?PageSize=20", oSbResponseBody)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oSbResponseBody:destroy()
    RETURN
ENDIF

oJson := CreateObject("Chilkat.JsonObject")
oJson:LoadSb(oSbResponseBody)
oJson:EmitCompact := 0

? "Response Body:"
? oJson:Emit()

nRespStatusCode := oHttp:LastStatus
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
    ? "Response Header:"
    ? oHttp:LastHeader
    ? "Failed."
    oHttp:destroy()
    oSbResponseBody:destroy()
    oJson:destroy()
    RETURN
ENDIF

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

//  {
//    "end": 1,
//    "first_page_uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json?To=%2B123456789&From=%2B987654321&DateSent%3E=2008-01-02&PageSize=2&Page=0",
//    "next_page_uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json?To=%2B123456789&From=%2B987654321&DateSent%3E=2008-01-02&PageSize=2&Page=1&PageToken=PAMMc26223853f8c46b4ab7dfaa6abba0a26",
//    "page": 0,
//    "page_size": 2,
//    "previous_page_uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json?To=%2B123456789&From=%2B987654321&DateSent%3E=2008-01-02&PageSize=2&Page=0",
//    "messages": [
//      {
//        "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
//        "api_version": "2010-04-01",
//        "body": "testing",
//        "date_created": "Fri, 24 May 2019 17:44:46 +0000",
//        "date_sent": "Fri, 24 May 2019 17:44:50 +0000",
//        "date_updated": "Fri, 24 May 2019 17:44:50 +0000",
//        "direction": "outbound-api",
//        "error_code": null,
//        "error_message": null,
//        "from": "+12019235161",
//        "messaging_service_sid": null,
//        "num_media": "0",
//        "num_segments": "1",
//        "price": "-0.00750",
//        "price_unit": "USD",
//        "sid": "SMded05904ccb347238880ca9264e8fe1c",
//        "status": "sent",
//        "subresource_uris": {
//          "media": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMded05904ccb347238880ca9264e8fe1c/Media.json",
//          "feedback": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMded05904ccb347238880ca9264e8fe1c/Feedback.json"
//        },
//        "to": "+18182008801",
//        "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/SMded05904ccb347238880ca9264e8fe1c.json"
//      },
//      {
//        "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
//        "api_version": "2010-04-01",
//        "body": "look mom I have media!",
//        "date_created": "Fri, 24 May 2019 17:44:46 +0000",
//        "date_sent": "Fri, 24 May 2019 17:44:49 +0000",
//        "date_updated": "Fri, 24 May 2019 17:44:49 +0000",
//        "direction": "inbound",
//        "error_code": 30004,
//        "error_message": "Message blocked",
//        "from": "+12019235161",
//        "messaging_service_sid": null,
//        "num_media": "3",
//        "num_segments": "1",
//        "price": "-0.00750",
//        "price_unit": "USD",
//        "sid": "MMc26223853f8c46b4ab7dfaa6abba0a26",
//        "status": "received",
//        "subresource_uris": {
//          "media": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/MMc26223853f8c46b4ab7dfaa6abba0a26/Media.json",
//          "feedback": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/MMc26223853f8c46b4ab7dfaa6abba0a26/Feedback.json"
//        },
//        "to": "+18182008801",
//        "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/MMc26223853f8c46b4ab7dfaa6abba0a26.json"
//      }
//    ],
//    "start": 0,
//    "uri": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json?To=%2B123456789&From=%2B987654321&DateSent%3E=2008-01-02&PageSize=2&Page=0"
//  }

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

nEnd := oJson:IntOf("end")
cFirst_page_uri := oJson:StringOf("first_page_uri")
cNext_page_uri := oJson:StringOf("next_page_uri")
nPage := oJson:IntOf("page")
nPage_size := oJson:IntOf("page_size")
cPrevious_page_uri := oJson:StringOf("previous_page_uri")
nStart := oJson:IntOf("start")
cUri := oJson:StringOf("uri")
i := 0
nCount_i := oJson:SizeOfArray("messages")
DO WHILE i < nCount_i
    oJson:I := i
    cAccount_sid := oJson:StringOf("messages[i].account_sid")
    cApi_version := oJson:StringOf("messages[i].api_version")
    cBody := oJson:StringOf("messages[i].body")
    cDate_created := oJson:StringOf("messages[i].date_created")
    cDate_sent := oJson:StringOf("messages[i].date_sent")
    cDate_updated := oJson:StringOf("messages[i].date_updated")
    cDirection := oJson:StringOf("messages[i].direction")
    cError_code := oJson:StringOf("messages[i].error_code")
    cError_message := oJson:StringOf("messages[i].error_message")
    cFrom := oJson:StringOf("messages[i].from")
    cMessaging_service_sid := oJson:StringOf("messages[i].messaging_service_sid")
    cNum_media := oJson:StringOf("messages[i].num_media")
    cNum_segments := oJson:StringOf("messages[i].num_segments")
    cPrice := oJson:StringOf("messages[i].price")
    cPrice_unit := oJson:StringOf("messages[i].price_unit")
    cSid := oJson:StringOf("messages[i].sid")
    cStatus := oJson:StringOf("messages[i].status")
    cSubresource_urisMedia := oJson:StringOf("messages[i].subresource_uris.media")
    cSubresource_urisFeedback := oJson:StringOf("messages[i].subresource_uris.feedback")
    cV_to := oJson:StringOf("messages[i].to")
    cUri := oJson:StringOf("messages[i].uri")
    i := i + 1
ENDDO

oHttp:destroy()
oSbResponseBody:destroy()
oJson:destroy()