Example #1
0
        static void Main(string[] args)
        {
            try
            {
                UserCredential credential;
                // Load client secrets.
                using (var stream =
                           new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
                {
                    /* The file token.json stores the user's access and refresh tokens, and is created
                     * automatically when the authorization flow completes for the first time. */
                    string credPath = "token.json";
                    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.FromStream(stream).Secrets,
                        Scopes,
                        "user",
                        CancellationToken.None,
                        new FileDataStore(credPath, true)).Result;
                    Console.WriteLine("Credential file saved to: " + credPath);
                }

                // Create Google Drive Activity API service.
                var service = new DriveActivityService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName       = ApplicationName
                });

                // Define parameters of request.
                QueryDriveActivityRequest requestData = new QueryDriveActivityRequest();
                requestData.PageSize = 10;
                ActivityResource.QueryRequest queryRequest = service.Activity.Query(requestData);

                // List activities.
                IList <DriveActivity> activities = queryRequest.Execute().Activities;
                Console.WriteLine("Recent activity:");
                if (activities == null || activities.Count == 0)
                {
                    Console.WriteLine("No activity.");
                    return;
                }
                foreach (var activity in activities)
                {
                    string        time    = GetTimeInfo(activity);
                    string        action  = GetActionInfo(activity.PrimaryActionDetail);
                    List <string> actors  = activity.Actors.Select(GetActorInfo).ToList();
                    List <string> targets = activity.Targets.Select(GetTargetInfo).ToList();
                    Console.WriteLine("{0}: {1}, {2}, {3}",
                                      time, Truncated(actors), action, Truncated(targets));
                }
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine(e.Message);
            }
Example #2
0
        static void GdriveWorker()
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Google Drive Activity API service.
            var service = new DriveActivityService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            QueryDriveActivityRequest requestData = new QueryDriveActivityRequest();

            requestData.PageSize = 10;
            ActivityResource.QueryRequest queryRequest = service.Activity.Query(requestData);

            // List activities.
            IList <Google.Apis.DriveActivity.v2.Data.DriveActivity> activities = queryRequest.Execute().Activities;

            Console.WriteLine("Recent activity:");
            if (activities != null && activities.Count > 0)
            {
                foreach (var activity in activities)
                {
                    string        time    = getTimeInfo(activity);
                    string        action  = getActionInfo(activity.PrimaryActionDetail);
                    List <string> actors  = activity.Actors.Select(a => getActorInfo(a)).ToList();
                    List <string> targets = activity.Targets.Select(t => getTargetInfo(t)).ToList();
                    Console.WriteLine("{0}: {1}, {2}, {3}",
                                      time, truncated(actors), action, truncated(targets));
                }
            }
            else
            {
                Console.WriteLine("No activity.");
            }
        }
        public DriveItem FindOrphanParent(string orphan_id)
        {
            QueryDriveActivityResponse response;
            QueryDriveActivityRequest  requestData = new QueryDriveActivityRequest();

            requestData.ItemName = orphan_id;
            requestData.PageSize = drive.PageSize;

            do
            {
                ActivityResource.QueryRequest queryRequest = service.Activity.Query(requestData);
                response = queryRequest.Execute();
                IList <Google.Apis.DriveActivity.v2.Data.DriveActivity> activities = response.Activities;

                if (activities != null && activities.Count > 0)
                {
                    foreach (var activity in activities)
                    {
                        try
                        {
                            // check that the item lost its parent without getting a new one --> orphan!
                            if (activity.PrimaryActionDetail.Move != null && activity.PrimaryActionDetail.Move.RemovedParents != null && activity.PrimaryActionDetail.Move.AddedParents == null)
                            {
                                DriveItem item = new DriveItem
                                {
                                    id           = activity.Targets[0].DriveItem.Name,
                                    title        = activity.Targets[0].DriveItem.Title,
                                    parent_id    = activity.PrimaryActionDetail.Move.RemovedParents[0].DriveItem.Name,
                                    parent_title = activity.PrimaryActionDetail.Move.RemovedParents[0].DriveItem.Title,
                                    isFile       = activity.Targets[0].DriveItem.DriveFile != null
                                };
                                return(item);
                            }
                        }
                        catch (Exception) { }
                    }
                }
                else
                {
                    break;
                }

                // set next request to get next page
                requestData.PageToken = response.NextPageToken;
            } while (response.NextPageToken != null && response.NextPageToken != "");
            throw new FileNotFoundException("No Activity found!");
        }
        public void GetSingleActivity(string item, bool getAllInfoInsideFolder = false)
        {
            QueryDriveActivityResponse response;
            QueryDriveActivityRequest  requestData = new QueryDriveActivityRequest();

            if (getAllInfoInsideFolder)
            {
                requestData.AncestorName = item; // gets all activity inside the folder
            }
            else
            {
                requestData.ItemName = item; // gets all activity from the item
            }

            requestData.PageSize = drive.PageSize;
            ActivityResource.QueryRequest queryRequest = service.Activity.Query(requestData);
            response = queryRequest.Execute();

            // List activities.
            IList <Google.Apis.DriveActivity.v2.Data.DriveActivity> activities = response.Activities;
        }