public string GetGroups() { // ----- Get Groups ----- Groups = new List <cGroups>(); string MyContactID = ""; Feed <Google.Contacts.Group> fg = cr.GetGroups(); foreach (Google.Contacts.Group group in fg.Entries) { cGroups gItem = new cGroups(); gItem.ID = group.Id; gItem.Name = group.Title; gItem.System = false; if (!string.IsNullOrEmpty(group.SystemGroup)) { gItem.Name = group.SystemGroup; gItem.System = true; if (gItem.Name == "Contacts") { MyContactID = gItem.ID; } } Groups.Add(gItem); } return(MyContactID); }
public List <Group> GetAll() { var request = new ContactsRequest(_settings); var groups = request.GetGroups().Entries; return(groups.Select(ParseGroup).ToList()); }
///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// /// <summary>runs an basic auth test against the groups feed test</summary> ////////////////////////////////////////////////////////////////////// [Test] public void GroupsModelTest() { Tracing.TraceMsg("Entering GroupsModelTest"); RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); rs.AutoPaging = true; ContactsRequest cr = new ContactsRequest(rs); Feed <Group> fg = cr.GetGroups(); Group newGroup = new Group(); newGroup.Title = "Private Data"; Group insertedGroup = cr.Insert(fg, newGroup); Group g2 = new Group(); g2.Title = "Another private Group"; Group insertedGroup2 = cr.Insert(fg, g2); // now insert a new contact that belongs to that group Feed <Contact> fc = cr.GetContacts(); Contact c = new Contact(); c.AtomEntry = ObjectModelHelper.CreateContactEntry(1); GroupMembership member = new GroupMembership(); member.HRef = insertedGroup.Id; GroupMembership member2 = new GroupMembership(); member2.HRef = insertedGroup2.Id; Contact insertedEntry = cr.Insert(fc, c); // now change the group membership insertedEntry.GroupMembership.Add(member); insertedEntry.GroupMembership.Add(member2); Contact currentEntry = cr.Update(insertedEntry); Assert.IsTrue(currentEntry.GroupMembership.Count == 2, "The entry should be in 2 groups"); currentEntry.GroupMembership.Clear(); currentEntry = cr.Update(currentEntry); Assert.IsTrue(currentEntry.GroupMembership.Count == 0, "The entry should not be in a group"); cr.Delete(currentEntry); cr.Delete(insertedGroup); cr.Delete(insertedGroup2); }
/// <summary> /// Gets the Google Groups. /// </summary> /// <returns>The Groups.</returns> public IEnumerable <Group> GetGroups() { var response = ContactsRequest.GetGroups(); if (response != null) { return(response.Entries.AsEnumerable()); } return(new List <Group>()); }
public void TestContactFeed() { Contact contact = new Contact(); //RequestSettings settings = new RequestSettings("Google contacts tutorial", parameters); RequestSettings settings = new RequestSettings("Google contacts tutorial"); ContactsRequest cr = new ContactsRequest(settings); Feed <Contact> feed = cr.GetContacts(); foreach (Contact c in feed.Entries) { //Console.WriteLine(c.Name.FullName); } //Feed<Document> feed = r.GetDocuments(); Feed <Group> fg = cr.GetGroups(); }
/// <summary> /// OAUTH2 login /// </summary> /// <param name="user">User name</param> /// <returns></returns> public bool Login(ref string user) { if (user == "") { user = "******"; } cr = GetContactRequest(user); try { Feed <Google.Contacts.Group> fg = cr.GetGroups(); int x = fg.PageSize; } catch (Exception Err) { user = RandomString(10); cr = GetContactRequest(user); } return(true); }
public static GoogleContactsManager CreateContactsManager() { var settings = new RequestSettings("Maintain Work Contacts", Settings.Default.EmailAddressUsername, Utility.ToInsecureString(Utility.DecryptString(Settings.Default.EmailAddressPassword))); settings.AutoPaging = true; var request = new ContactsRequest(settings); IEnumerable<Group> groups; try { groups = request.GetGroups().Entries; string groupName = Settings.Default.GoogleWorkGroupName; var workGroup = groups.Where(g => g.Title.Contains(groupName)).FirstOrDefault(); if (workGroup == null) { throw new ArgumentNullException("WorkGroup", "There is no group called " + groupName + " in the Google account."); } var myContactsGroup = groups.Where(g => g.Title.Contains("My Contacts")).FirstOrDefault(); if (myContactsGroup == null) { throw new ArgumentNullException("MyContactsGroup", "There is no group called My Contacts in the Google account."); } GoogleContactsManager contactsManager = new GoogleContactsManager(); contactsManager.Request = request; contactsManager.MyContactsGroup = myContactsGroup; contactsManager.WorkGroup = workGroup; return contactsManager; } catch (GDataRequestException exception) { throw new InvalidCredentialsException("Invalid username and password were provided.", exception); } }
static void FillGroups(UserCredential creds) { RefreshToken(creds, out bool success); if (!success) { return; } ContactsRequest cr = BuildContactsRequest(creds); try { Feed <Group> fg = cr.GetGroups(); fg.AutoPaging = true; foreach (Group group in fg.Entries) { if (group.Title == Constants.GroupName) { groupId = group.Id; } if (group.Title == "System Group: My Contacts") { defaultGroupId = group.Id; } if (!string.IsNullOrEmpty(groupId) && !string.IsNullOrEmpty(defaultGroupId)) { break; } } } catch (Exception ex) { logger.Error(ex, "Could not get groups from Google"); } }
///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// /// <summary>runs an basic auth test against the groups feed test</summary> ////////////////////////////////////////////////////////////////////// [Test] public void GroupsModelTest() { Tracing.TraceMsg("Entering GroupsModelTest"); RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); rs.AutoPaging = true; ContactsRequest cr = new ContactsRequest(rs); Feed<Group> fg = cr.GetGroups(); Group newGroup = new Group(); newGroup.Title = "Private Data"; Group insertedGroup = cr.Insert(fg, newGroup); Group g2 = new Group(); g2.Title = "Another private Group"; Group insertedGroup2 = cr.Insert(fg, g2); // now insert a new contact that belongs to that group Feed<Contact> fc = cr.GetContacts(); Contact c = new Contact(); c.AtomEntry = ObjectModelHelper.CreateContactEntry(1); GroupMembership member = new GroupMembership(); member.HRef = insertedGroup.Id; GroupMembership member2 = new GroupMembership(); member2.HRef = insertedGroup2.Id; Contact insertedEntry = cr.Insert(fc, c); // now change the group membership insertedEntry.GroupMembership.Add(member); insertedEntry.GroupMembership.Add(member2); Contact currentEntry = cr.Update(insertedEntry); Assert.IsTrue(currentEntry.GroupMembership.Count == 2, "The entry should be in 2 groups"); currentEntry.GroupMembership.Clear(); currentEntry = cr.Update(currentEntry); Assert.IsTrue(currentEntry.GroupMembership.Count == 0, "The entry should not be in a group"); cr.Delete(currentEntry); cr.Delete(insertedGroup); cr.Delete(insertedGroup2); }
public List<Group> GetAll() { var request = new ContactsRequest(_settings); var groups = request.GetGroups().Entries; return groups.Select(ParseGroup).ToList(); }
public virtual ActionResult GoogleAuthCallback(string code = null, string error = null) { if (String.IsNullOrWhiteSpace(code)) { return(View(Views.Index)); } var client = new WebClient(); var parameters = new NameValueCollection { { "client_id", "1051352266030-l2avpmbf9kk0s8b9eshqu6fkd0gee50g.apps.googleusercontent.com" }, { "client_secret", "5Ai2kKsRUK8Av5RehYB3rx7k" }, { "grant_type", "authorization_code" }, { "redirect_uri", "http://localhost:64901/GoogleAuthCallback" }, { "code", code } }; var rawResponse = client.UploadValues("https://accounts.google.com/o/oauth2/token", parameters); var responseString = Encoding.UTF8.GetString(rawResponse); dynamic tokenData = JsonConvert.DeserializeObject(responseString); //rawResponse = client.DownloadData(String.Format("https://www.google.com/m8/feeds/contacts/default/full?access_token={0}", tokenData.access_token)); //responseString = Encoding.UTF8.GetString(rawResponse); //dynamic contactsData = JsonConvert.DeserializeObject(responseString); var rs = new RequestSettings("Google Contacts Test", tokenData.access_token.ToString()) { AutoPaging = true }; var cr = new ContactsRequest(rs); var rawContacts = cr.GetContacts(); var rawGroups = cr.GetGroups(); var groups = new List <String>(); foreach (var entry in rawGroups.Entries) { groups.Add(entry.Title); } var contacts = new List <Tuple <String, String> >(); foreach (var entry in rawContacts.Entries) { if (!entry.Emails.Any()) { continue; } var b = (from gm in entry.GroupMembership join rg in rawGroups.Entries on gm.HRef equals rg.AtomEntry.Id.AbsoluteUri where !rg.Title.ToLower().Equals("starred in android") select rg.Title.ToLower().Contains("system group") ? rg.Title.Split(new[] { ':' })[1].Trim() : rg.Title) .ToList(); var tuple = new Tuple <string, string>(entry.Title, entry.Emails.First().Address); contacts.Add(tuple); } return(View(Views.Index)); }
private IList <Group> GetAllContactGroups(ContactsRequest request) { request.Settings.AutoPaging = false; request.Settings.Maximum = GoogleSyncSettings.DefaultMaxContactGroupCount; return(request.GetGroups().Entries.ToList()); }