Creates a new permission for a file. (In this example the permission is created for the file with id = 1BXNQ4sMDD1WibOtcYqgQlwJa0MAa6rTQ)
#include <CkRest.h>
#include <CkOAuth2.h>
#include <CkJsonObject.h>
#include <CkStringBuilder.h>
void ChilkatSample(void)
{
CkRest rest;
bool success;
// Provide a previously obtained OAuth2 access token.
CkOAuth2 oauth2;
oauth2.put_AccessToken("OAUTH2_ACCESS_TOKEN");
rest.SetAuthOAuth2(oauth2);
success = rest.Connect("www.googleapis.com",443,true,true);
if (success != true) {
std::cout << rest.lastErrorText() << "\r\n";
return;
}
rest.AddQueryParam("includeTeamDriveItems","true");
rest.AddQueryParam("supportsTeamDrives","true");
// The following code creates the JSON request body.
// The JSON created by this code is shown below.
CkJsonObject jsonReq;
jsonReq.UpdateString("role","reader");
jsonReq.UpdateString("type","anyone");
CkStringBuilder sbReq;
jsonReq.EmitSb(sbReq);
rest.AddHeader("Content-Type","application/json");
CkStringBuilder sbJson;
success = rest.FullRequestSb("POST","/drive/v3/files/1BXNQ4sMDD1WibOtcYqgQlwJa0MAa6rTQ/permissions",sbReq,sbJson);
if (success != true) {
std::cout << rest.lastErrorText() << "\r\n";
return;
}
if (rest.get_ResponseStatusCode() != 200) {
std::cout << "Received error response code: " << rest.get_ResponseStatusCode() << "\r\n";
std::cout << "Response body:" << "\r\n";
std::cout << sbJson.getAsString() << "\r\n";
return;
}
CkJsonObject json;
json.LoadSb(sbJson);
// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.
const char *kind = 0;
const char *id = 0;
const char *type = 0;
const char *role = 0;
bool allowFileDiscovery;
kind = json.stringOf("kind");
id = json.stringOf("id");
type = json.stringOf("type");
role = json.stringOf("role");
allowFileDiscovery = json.BoolOf("allowFileDiscovery");
std::cout << "Example Completed." << "\r\n";
}
{
"role": "reader",
"type": "anyone"
}
{
"kind": "drive#permission",
"id": "anyoneWithLink",
"type": "anyone",
"role": "reader",
"allowFileDiscovery": false
}