![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) Get GMail Message MetadataDemonstrates how to get the metadata for each message in a list of message IDs. Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://developers.google.com/gmail/api/v1/reference/users/messages/get
#include <C_CkHttpW.h> #include <C_CkJsonObjectW.h> #include <C_CkHttpResponseW.h> void ChilkatSample(void) { BOOL success; HCkHttpW http; HCkJsonObjectW jsonMsgIds; HCkHttpResponseW resp; const wchar_t *id; int i; int count_i; HCkJsonObjectW jsonResponse; success = FALSE; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttpW_Create(); CkHttpW_putAuthToken(http,L"ACCESS_TOKEN"); CkHttpW_putAccept(http,L"application/json"); // Let's say we have the following JSON containing a list of message ID's // { // "messages": [ // { // "id": "1712bc1dc22da2a2", // "threadId": "1712bc1dc22da2a2" // }, // { // "id": "1712b94fa2168040", // "threadId": "1712b94fa2168040" // }, // { // "id": "1711e4bd96ded05e", // "threadId": "1711e4bd96ded05e" // }, // { // "id": "1711de0d119e751e", // "threadId": "1711de0d119e751e" // }, // { // "id": "1711c81a43050f59", // "threadId": "1711c81a43050f59" // }, // { // "id": "1711c2c1516abce5", // "threadId": "1711c2c1516abce5" // }, // { // "id": "1711c161e655c915", // "threadId": "1711c161e655c915" // }, // { // "id": "171199c6e454558c", // "threadId": "171199c6e454558c" // }, // { // "id": "17119474c8aa248e", // "threadId": "17119474c8aa248e" // } // ], // "nextPageToken": "16710921492249671162", // "resultSizeEstimate": 309 // } // Normally your program would have the above JSON in a string variable (obtained from a previous call to get // a list of message IDs from a GMail mailbox). In this example, we'll load the JSON from a file. jsonMsgIds = CkJsonObjectW_Create(); success = CkJsonObjectW_LoadFile(jsonMsgIds,L"qa_data/json/gmail_message_ids.json"); resp = CkHttpResponseW_Create(); i = 0; count_i = CkJsonObjectW_SizeOfArray(jsonMsgIds,L"messages"); while (i < count_i) { CkJsonObjectW_putI(jsonMsgIds,i); id = CkJsonObjectW_stringOf(jsonMsgIds,L"messages[i].id"); // Get the metadata for this message ID. CkHttpW_SetUrlVar(http,L"id",id); success = CkHttpW_HttpNoBody(http,L"GET",L"https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=metadata",resp); if (success == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(jsonMsgIds); CkHttpResponseW_Dispose(resp); return; } wprintf(L"Response Status Code: %d\n",CkHttpResponseW_getStatusCode(resp)); jsonResponse = CkJsonObjectW_Create(); CkJsonObjectW_Load(jsonResponse,CkHttpResponseW_bodyStr(resp)); CkJsonObjectW_putEmitCompact(jsonResponse,FALSE); wprintf(L"%s\n",CkJsonObjectW_emit(jsonResponse)); if (CkHttpResponseW_getStatusCode(resp) != 200) { wprintf(L"Failed.\n"); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(jsonMsgIds); CkHttpResponseW_Dispose(resp); CkJsonObjectW_Dispose(jsonResponse); return; } i = i + 1; } // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON CkHttpW_Dispose(http); CkJsonObjectW_Dispose(jsonMsgIds); CkHttpResponseW_Dispose(resp); CkJsonObjectW_Dispose(jsonResponse); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.