public GoogleContacts() { // Create OAuth credential. UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync( new ClientSecrets { ClientId = m_client_id, ClientSecret = m_client_secret }, new[] { "profile", "https://www.googleapis.com/auth/contacts.readonly" }, "me", CancellationToken.None).Result; // Create the service. var service = new PeopleServiceService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "My App", }); // Groups list //////////// ContactGroupsResource groupsResource = new ContactGroupsResource(service); ContactGroupsResource.ListRequest listRequest = groupsResource.List(); ListContactGroupsResponse response = listRequest.Execute(); // eg to show name of each group List <string> groupNames = new List <string>(); foreach (ContactGroup group in response.ContactGroups) { groupNames.Add(group.FormattedName); } /////////////// // Contact list //////////// PeopleResource.ConnectionsResource.ListRequest peopleRequest = service.People.Connections.List("people/me"); peopleRequest.PersonFields = "names,emailAddresses"; peopleRequest.SortOrder = (PeopleResource.ConnectionsResource.ListRequest.SortOrderEnum) 1; ListConnectionsResponse people = peopleRequest.Execute(); // eg to show display name of each contact List <string> contacts = new List <string>(); foreach (var person in people.Connections) { contacts.Add(person.Names[0].DisplayName); } /////////////// }
public async Task <IActionResult> Contact() { string gCode = TempData["code"].ToString(); string ClientSecret = _config.GetValue <string>("GooglePoepleAPI:ClientSecret"); string ClientId = _config.GetValue <string>("GooglePoepleAPI:ClientId"); string userId = "userId"; const string dataStoreFolder = "googleApiStorageFile"; // create authorization code flow with clientSecrets GoogleAuthorizationCodeFlow authorizationCodeFlow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer { DataStore = new FileDataStore(dataStoreFolder), ClientSecrets = new ClientSecrets() { ClientId = ClientId, ClientSecret = ClientSecret } }); FileDataStore fileStore = new FileDataStore(dataStoreFolder); TokenResponse tokenResponse = await fileStore.GetAsync <TokenResponse>(userId); if (tokenResponse == null) { // token data does not exist for this user tokenResponse = await authorizationCodeFlow.ExchangeCodeForTokenAsync( userId, // user for tracking the userId on our backend system gCode, "http://localhost:5000/people/", // redirect_uri can not be empty. Must be one of the redirects url listed in your project in the api console CancellationToken.None); } UserCredential userCredential = new UserCredential(authorizationCodeFlow, userId, tokenResponse); var service = new PeopleServiceService(new BaseClientService.Initializer() { HttpClientInitializer = userCredential, ApplicationName = "VAapps", }); ContactGroupsResource groupsResource = new ContactGroupsResource(service); ContactGroupsResource.ListRequest listRequest = groupsResource.List(); ListContactGroupsResponse response = listRequest.Execute(); List <string> listOnView = new List <string>(); foreach (ContactGroup group in response.ContactGroups) { listOnView.Add("Groups: " + group.FormattedName); } Google.Apis.PeopleService.v1.PeopleResource.ConnectionsResource.ListRequest peopleRequest = service.People.Connections.List("people/me"); peopleRequest.PersonFields = "names,emailAddresses,phoneNumbers"; peopleRequest.SortOrder = (Google.Apis.PeopleService.v1.PeopleResource.ConnectionsResource.ListRequest.SortOrderEnum) 1; peopleRequest.PageSize = 1999; ListConnectionsResponse people = peopleRequest.Execute(); // are: * addresses * ageRanges * biographies * birthdays * braggingRights * coverPhotos // * emailAddresses * events * genders * imClients * interests * locales * memberships // * metadata * names * nicknames * occupations * organizations * phoneNumbers * // photos * relations * relationshipInterests * relationshipStatuses * residences // * sipAddresses * skills * taglines * urls * userDefined var me = service.People.Get("people/me"); me.PersonFields = "names,emailAddresses,phoneNumbers,birthdays,coverPhotos,metadata,events"; var aboutMe = me.Execute(); ViewBag.AboutMe = aboutMe; ViewBag.ContactList = people.Connections; return(View()); }