PowerBuilder Google Drive: Update a Comment

Back to Index

Updates (modifies) a particular comment on a file. This example updates the comment (id="AAAABg7tSGw") from the file having id = "0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw".

Documentation: https://developers.google.com/drive/v3/reference/comments/update


integer li_rc
oleobject loo_Rest
integer li_Success
oleobject loo_Oauth2
oleobject loo_JsonReq
oleobject loo_SbReq
oleobject loo_SbJson
oleobject loo_Json
string ls_Id
string ls_AuthorKind
string ls_AuthorDisplayName
string ls_AuthorPhotoLink
integer li_AuthorMe
string ls_Content

loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat_9_5_0.Rest")
if li_rc < 0 then
    destroy loo_Rest
    MessageBox("Error","Connecting to COM object failed")
    return
end if

//   Provide a previously obtained OAuth2 access token.
loo_Oauth2 = create oleobject
li_rc = loo_Oauth2.ConnectToNewObject("Chilkat_9_5_0.OAuth2")

loo_Oauth2.AccessToken = "OAUTH2_ACCESS_TOKEN"
loo_Rest.SetAuthOAuth2(loo_Oauth2)

li_Success = loo_Rest.Connect("www.googleapis.com",443,1,1)
if li_Success <> 1 then
    Write-Debug loo_Rest.LastErrorText
    destroy loo_Rest
    destroy loo_Oauth2
    return
end if

loo_Rest.AddQueryParam("fields","id,author,content")

//  The following code creates the JSON request body.
//  The JSON created by this code is shown below.
loo_JsonReq = create oleobject
li_rc = loo_JsonReq.ConnectToNewObject("Chilkat_9_5_0.JsonObject")

loo_JsonReq.UpdateString("content","This is the updated comment.")

loo_SbReq = create oleobject
li_rc = loo_SbReq.ConnectToNewObject("Chilkat_9_5_0.StringBuilder")

loo_JsonReq.EmitSb(loo_SbReq)

loo_Rest.AddHeader("Content-Type","application/json")

loo_SbJson = create oleobject
li_rc = loo_SbJson.ConnectToNewObject("Chilkat_9_5_0.StringBuilder")

li_Success = loo_Rest.FullRequestSb("PATCH","/drive/v3/files/0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw/comments/AAAABg7tSGw",loo_SbReq,loo_SbJson)
if li_Success <> 1 then
    Write-Debug loo_Rest.LastErrorText
    destroy loo_Rest
    destroy loo_Oauth2
    destroy loo_JsonReq
    destroy loo_SbReq
    destroy loo_SbJson
    return
end if

if loo_Rest.ResponseStatusCode <> 200 then
    Write-Debug "Received error response code: " + string(loo_Rest.ResponseStatusCode)
    Write-Debug "Response body:"
    Write-Debug loo_SbJson.GetAsString()
    destroy loo_Rest
    destroy loo_Oauth2
    destroy loo_JsonReq
    destroy loo_SbReq
    destroy loo_SbJson
    return
end if

loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat_9_5_0.JsonObject")

loo_Json.LoadSb(loo_SbJson)

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

ls_Id = loo_Json.StringOf("id")
ls_AuthorKind = loo_Json.StringOf("author.kind")
ls_AuthorDisplayName = loo_Json.StringOf("author.displayName")
ls_AuthorPhotoLink = loo_Json.StringOf("author.photoLink")
li_AuthorMe = loo_Json.BoolOf("author.me")
ls_Content = loo_Json.StringOf("content")

Write-Debug "Example Completed."


destroy loo_Rest
destroy loo_Oauth2
destroy loo_JsonReq
destroy loo_SbReq
destroy loo_SbJson
destroy loo_Json

Sample JSON Request Body

{
  "content": "This is the updated comment."
}

Sample JSON Response Body

{
  "id": "AAAABg7tSGw",
  "author": {
    "kind": "drive#user",
    "displayName": "Matt Fausey",
    "photoLink": "//ssl.gstatic.com/s2/profiles/images/silhouette96.png",
    "me": true
  },
  "content": "This is the updated comment."
}