Xbase++
Xbase++
Download a Specific GMail Message into a Chilkat Email Object
See more GMail REST API Examples
Demonstrates how to download a GMail message into a Chilkat Email object.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL cId
LOCAL cUserId
LOCAL cUrl
LOCAL oSbJson
LOCAL oJson
LOCAL oSbRaw
LOCAL oEmail
nSuccess := 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
oHttp:AuthToken := "GMAIL-ACCESS-TOKEN"
// The id of the GMail message to download.
cId := "166e50fed0b9b0cb"
cUserId := "me"
oHttp:SetUrlVar("userId", "me")
oHttp:SetUrlVar("id", cId)
// Fetch the email.
cUrl := "https://www.googleapis.com/gmail/v1/users/{$userId}/messages/{$id}?format=raw"
oSbJson := CreateObject("Chilkat.StringBuilder")
nSuccess := oHttp:DownloadSb(cUrl, "utf-8", oSbJson)
IF (nSuccess != 1)
? oHttp:LastErrorText
oHttp:destroy()
oSbJson:destroy()
RETURN
ENDIF
oJson := CreateObject("Chilkat.JsonObject")
oJson:LoadSb(oSbJson)
oJson:EmitCompact := 0
IF (oHttp:LastStatus != 200)
? oJson:Emit()
? "Failed."
oHttp:destroy()
oSbJson:destroy()
oJson:destroy()
RETURN
ENDIF
// The returned JSON contains something like this:
// {
// "id": "166e50fed0b9b0cb",
// "threadId": "166e50fed0b9b0cb",
// "labelIds": [
// "CATEGORY_SOCIAL",
// "INBOX"
// ],
// "snippet": "...",
// "historyId": "582477",
// "internalDate": "1541441317000",
// "sizeEstimate": 28603,
// "raw": "BASE64URL_CONTENT"
// }
// The RFC822 MIME of the email is contained in the "raw" as a base64URL encoded string.
// Let's decode and load into a Chilkat email object..
oSbRaw := CreateObject("Chilkat.StringBuilder")
oJson:StringOfSb("raw", oSbRaw)
oSbRaw:Decode("base64url", "utf-8")
oEmail := CreateObject("Chilkat.Email")
oEmail:SetFromMimeSb(oSbRaw)
// Now we can use the email API to do whatever we desire..
? "From: " + oEmail:FromAddress
? "Subject: " + oEmail:Subject
// ...
oHttp:destroy()
oSbJson:destroy()
oJson:destroy()
oSbRaw:destroy()
oEmail:destroy()