Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(CkPython) BatchModify - Add a Label to each Message in Search ResultsSearchs GMail for messages meeting a criteria and adds a label to each message found.
import sys import chilkat # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. http = chilkat.CkHttp() http.put_AuthToken("GMAIL-ACCESS-TOKEN") userId = "me" http.SetUrlVar("userId",userId) query = "subject:questions" http.SetUrlVar("query",query) url = "https://www.googleapis.com/gmail/v1/users/{$userId}/messages?q={$query}" sb = chilkat.CkStringBuilder() success = http.QuickGetSb(url,sb) if (success != True): print(http.lastErrorText()) sys.exit() json = chilkat.CkJsonObject() json.LoadSb(sb) json.put_EmitCompact(False) print(json.emit()) if (http.get_LastStatus() != 200): print("Failed.") sys.exit() # If successful, the received JSON looks like this: # { # "messages": [ # { # "id": "166f583051d36144", # "threadId": "166f583051d36144" # }, # { # "id": "166f5815e1f36144", # "threadId": "166f5815e1f36144" # }, # ... # { # "id": "166f580639e36144", # "threadId": "166f580639e36144" # }, # { # "id": "15dbc2e28ec789c6", # "threadId": "15dbc2e28ec789c6" # } # ], # "nextPageToken": "13434766102274844688", # "resultSizeEstimate": 103 # } # # Next, we'll be sending an HTTP POST to add the label "questions" to each message in the # search results. The JSON to be sent for the batchModify is this: # { # "ids": [ # string # ], # "addLabelIds": [ # string # ], # "removeLabelIds": [ # string # ] # } # We'll omit "removeLabelIds" because we're not removing any labels. # We are parsing the JSON search results, and at the same time building the batchModify JSON. json2 = chilkat.CkJsonObject() i = 0 numMessages = json.SizeOfArray("messages") while (i < numMessages) : json.put_I(i) id = json.stringOf("messages[i].id") json2.put_I(i) json2.UpdateString("ids[i]",id) i = i + 1 # We need the id of the label (not the name). # I know the name of the label is "questions", but I need to know the id. # See this example: Get Label Id by Name # The id of my label named "questions" is "Label_43" labelId = "Label_43" json2.UpdateString("addLabelIds[0]",labelId) json2.UpdateNewArray("removeLabelIds") json2.put_EmitCompact(False) print(json2.emit()) # Send the batchModify url = "https://www.googleapis.com/gmail/v1/users/{$userId}/messages/batchModify" # resp is a CkHttpResponse resp = http.PostJson3(url,"application/json",json2) if (http.get_LastMethodSuccess() != True): print(http.lastErrorText()) sys.exit() print("status = " + str(resp.get_StatusCode())) # A 204 response status indicate success. if (resp.get_StatusCode() != 204): print(resp.bodyStr()) print("Failed.") sys.exit() # The 204 response has an empty response body.. print("BatchModify success!") |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.