static void Main(string[] args)
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.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 AppsactivityService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            ActivitiesResource.ListRequest listRequest = service.Activities.List();
            listRequest.Source          = "drive.google.com";
            listRequest.DriveAncestorId = "root";
            listRequest.PageSize        = 10;

            // List activities.
            IList <Google.Apis.Appsactivity.v1.Data.Activity> activities = listRequest.Execute().Activities;

            Console.WriteLine("Activities:");
            if (activities != null && activities.Count > 0)
            {
                foreach (var activity in activities)
                {
                    Event  activityEvent = activity.CombinedEvent;
                    User   user          = activityEvent.User;
                    Target target        = activityEvent.Target;
                    if (user != null && target != null)
                    {
                        var      epoc = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                        DateTime date = epoc.AddMilliseconds(
                            (long)activityEvent.EventTimeMillis).ToLocalTime();
                        Console.WriteLine("{0}: {1} {2} {3} {4}", date, user.Name,
                                          activityEvent.PrimaryEventType, target.Name, target.MimeType);
                    }
                }
            }
            else
            {
                Console.WriteLine("No recent activity.");
            }
            Console.Read();
        }
        private async void HomePage_Loaded(object sender, RoutedEventArgs e)
        {
            if (_activityReq == null)
            {
                var userCredential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                    new Uri("ms-appx:///client_id.json"),
                    new[] { YouTubeService.Scope.Youtube },
                    "user",
                    CancellationToken.None);

                var youtube = new YouTubeService(new BaseClientService.Initializer()
                {
                    //ApiKey = "AIzaSyC7enbf9xtdebb4EDHXeeqHXk2qUuLfeuc",
                    HttpClientInitializer = userCredential,
                    ApplicationName = "ProTube"
                });

                _activityReq = youtube.Activities.List("snippet,contentDetails");
                _activityReq.Home = true;
                _activityReq.MaxResults = 50;
                _activityReq.PublishedAfter = DateTime.Now.AddDays(-14);
            }

            if (_activityRes == null)
            {
                _activityRes = await _activityReq.ExecuteAsync();
                VideosList.ItemsSource = _activityRes.Items;
                NextButton.IsEnabled = true;
            }
        }
Esempio n. 3
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 Reports API service.
                var service = new ReportsService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName       = ApplicationName
                });

                // Define parameters of request.
                ActivitiesResource.ListRequest request = service.Activities
                                                         .List("all", ActivitiesResource.ListRequest.ApplicationNameEnum.Drive);
                request.MaxResults = 10;

                // List activities.
                IList <Activity> activities = request.Execute().Items;
                Console.WriteLine("Logins:");
                if (activities == null || activities.Count == 0)
                {
                    Console.WriteLine("No logins found.");
                    return;
                }
                foreach (var activityItem in activities)
                {
                    Console.WriteLine("{0}: {1} {2}", activityItem.Id.Time,
                                      activityItem.Actor.Email,
                                      activityItem.Events.First().Name);
                }
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine(e.Message);
            }
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/admin-reports_v1-dotnet-quickstart.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 Reports API service.
            var service = new ReportsService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            ActivitiesResource.ListRequest request = service.Activities
                                                     .List("all", "login");
            request.MaxResults = 10;

            // List activities.
            IList <Activity> activities = request.Execute().Items;

            Console.WriteLine("Logins:");
            if (activities != null && activities.Count > 0)
            {
                foreach (var activityItem in activities)
                {
                    Console.WriteLine("{0}: {1} {2}", activityItem.Id.Time,
                                      activityItem.Actor.Email,
                                      activityItem.Events.First <Activity.EventsData>().Name);
                }
            }
            else
            {
                Console.WriteLine("No logins found.");
            }
            Console.Read();
        }
        public static IList<Activity> GetAllActivitiesPaging(PlusService service, string _userId, int NumberOfPages, int ItemsPerPage, string NextPageToken)
        {
            //List next page activities in the specified collection for the current user.  
            // Documentation: https://developers.google.com/+/api/latest/activities/list
            int max = ItemsPerPage;
            int count = 0;
            int iterate = NumberOfPages;
            ActivitiesResource.ListRequest list = service.Activities.List(_userId, ActivitiesResource.ListRequest.CollectionEnum.Public__);

            if (NextPageToken != "" && NextPageToken != null)
                list.PageToken = NextPageToken;

            list.MaxResults = max;

            ActivityFeed activitesFeed = list.Execute();
            IList<Activity> Activites = new List<Activity>();
            count++;


            while (activitesFeed.Items != null || count <= iterate)
            {
                // Prepare the next page of results
                list.PageToken = activitesFeed.NextPageToken;

                // Adding each item  to the list.
                foreach (Activity item in activitesFeed.Items)
                {
                    Activites.Add(item);
                }

                if (activitesFeed.NextPageToken == null || count >= iterate)
                {
                    break;
                }


                // Execute and process the next page request
                activitesFeed = list.Execute();
                count++;
            }
            Activity token = new Activity();
            token.Title = activitesFeed.NextPageToken;
            Activites.Add(token);
            return Activites;
        }
        public static IList<Activity> GetAllActivitiesLimited(PlusService service, string _userId, int NumberOfPages, int ItemsPerPage)
        {
            //List all of the activities in the specified collection for the current user.  
            // Documentation: https://developers.google.com/+/api/latest/activities/list
            int max = ItemsPerPage;
            int count = 0;
            int iterate = NumberOfPages / max;
            ActivitiesResource.ListRequest list = service.Activities.List(_userId, ActivitiesResource.ListRequest.CollectionEnum.Public__);
            list.MaxResults = max;

            ActivityFeed activitesFeed = list.Execute();
            IList<Activity> Activites = new List<Activity>();
            count++;


            //// Loop through until we arrive at an empty page
            while (activitesFeed.Items != null || count <= iterate)
            {
                // Adding each item  to the list.
                foreach (Activity item in activitesFeed.Items)
                {
                    Activites.Add(item);
                }

                // We will know we are on the last page when the next page token is
                // null.
                // If this is the case, break.
                if (activitesFeed.NextPageToken == null || count <= iterate)
                {
                    break;
                }

                // Prepare the next page of results
                list.PageToken = activitesFeed.NextPageToken;

                // Execute and process the next page request
                activitesFeed = list.Execute();
                count++;
            }

            return Activites;
        }
        private static List <Activity> GetMoveActivities(ReportsService service, string destinationFolder, DateTime fromDate, DateTime toDate, string ipAddress = null)
        {
            ActivitiesResource.ListRequest request = service.Activities.List("all", "drive");
            request.MaxResults     = 1000;
            request.EventName      = "move";
            request.Filters        = $"destination_folder_id=={destinationFolder}";
            request.StartTime      = XmlConvert.ToString(fromDate, XmlDateTimeSerializationMode.Utc);
            request.EndTime        = XmlConvert.ToString(toDate, XmlDateTimeSerializationMode.Utc);
            request.ActorIpAddress = ipAddress;

            var activities = new List <Activity>();

            do
            {
                var response = request.Execute();
                activities.AddRange(response.Items);
                request.PageToken = response.NextPageToken;
            }while (request.PageToken != null);

            return(activities);
        }