Tcl Google Drive: Creates a New Reply to a Comment

Back to Index

Creates a new reply to a comment. This example creates a reply to a comment on the file having fileId = "0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw", and commentId = "AAAABg7tSGw".

Documentation: https://developers.google.com/drive/v3/reference/replies/create



load ./chilkat.dll

set rest [new_CkRest]

#   Provide a previously obtained OAuth2 access token.
set oauth2 [new_CkOAuth2]

CkOAuth2_put_AccessToken $oauth2 "OAUTH2_ACCESS_TOKEN"
CkRest_SetAuthOAuth2 $rest $oauth2

set success [CkRest_Connect $rest "www.googleapis.com" 443 1 1]
if {[expr $success != 1]} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkRest $rest
    delete_CkOAuth2 $oauth2
    exit
}

CkRest_AddQueryParam $rest "fields" "modifiedTime,author,content,action"

#  The following code creates the JSON request body.
#  The JSON created by this code is shown below.
set jsonReq [new_CkJsonObject]

CkJsonObject_UpdateString $jsonReq "content" "This is the second reply to a comment."
CkJsonObject_UpdateString $jsonReq "action" "resolve"

set sbReq [new_CkStringBuilder]

CkJsonObject_EmitSb $jsonReq $sbReq

CkRest_AddHeader $rest "Content-Type" "application/json"

set sbJson [new_CkStringBuilder]

set success [CkRest_FullRequestSb $rest "POST" "/drive/v3/files/0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw/comments/AAAABg7tSGw/replies" $sbReq $sbJson]
if {[expr $success != 1]} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkRest $rest
    delete_CkOAuth2 $oauth2
    delete_CkJsonObject $jsonReq
    delete_CkStringBuilder $sbReq
    delete_CkStringBuilder $sbJson
    exit
}

if {[expr [CkRest_ResponseStatusCode $rest] != 200]} then {
    puts "Received error response code: [CkRest_ResponseStatusCode $rest]"
    puts "Response body:"
    puts [CkStringBuilder_getAsString $sbJson]
    delete_CkRest $rest
    delete_CkOAuth2 $oauth2
    delete_CkJsonObject $jsonReq
    delete_CkStringBuilder $sbReq
    delete_CkStringBuilder $sbJson
    exit
}

set json [new_CkJsonObject]

CkJsonObject_LoadSb $json $sbJson

#  The following code parses the JSON response.
#  A sample JSON response is shown below the sample code.

set modifiedTime [CkJsonObject_stringOf $json "modifiedTime"]
set authorKind [CkJsonObject_stringOf $json "author.kind"]
set authorDisplayName [CkJsonObject_stringOf $json "author.displayName"]
set authorPhotoLink [CkJsonObject_stringOf $json "author.photoLink"]
set authorMe [CkJsonObject_BoolOf $json "author.me"]
set content [CkJsonObject_stringOf $json "content"]
set action [CkJsonObject_stringOf $json "action"]

puts "Example Completed."

delete_CkRest $rest
delete_CkOAuth2 $oauth2
delete_CkJsonObject $jsonReq
delete_CkStringBuilder $sbReq
delete_CkStringBuilder $sbJson
delete_CkJsonObject $json

Sample JSON Request Body

{
  "content": "This is the second reply to a comment.",
"action": "resolve"
}

Sample JSON Response Body

{
  "modifiedTime": "2017-11-13T18:25:11.828Z",
  "author": {
    "kind": "drive#user",
    "displayName": "Matt Fausey",
    "photoLink": "//ssl.gstatic.com/s2/profiles/images/silhouette96.png",
    "me": true
  },
  "content": "This is the second reply to a comment.",
  "action": "resolve"
}