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(); }
/// <summary> /// Returns a list of activities visible to the current logged in user. Visible activities are determined by the visiblity settings of the object that was acted on, e.g. Drive files a user can see. An activity is a record of past events. Multiple events may be merged if they are similar. A request is scoped to activities from a given Google service using the source parameter. /// Documentation https://developers.google.com/appsactivity/v1/reference/activities/list /// Generation Note: This does not always build corectly. Google needs to standardise things I need to figuer out which ones are wrong. /// </summary> /// <param name="service">Authenticated Appsactivity service.</param> /// <param name="optional">Optional paramaters.</param> /// <returns>ListActivitiesResponseResponse</returns> public static ListActivitiesResponse List(AppsactivityService service, ActivitiesListOptionalParms optional = null) { try { // Initial validation. if (service == null) { throw new ArgumentNullException("service"); } // Building the initial request. var request = service.Activities.List(); // Applying optional parameters to the request. request = (ActivitiesResource.ListRequest)SampleHelpers.ApplyOptionalParms(request, optional); // Requesting data. return(request.Execute()); } catch (Exception ex) { throw new Exception("Request Activities.List failed.", ex); } }