/// <summary> /// Import all Google contacts /// </summary> public void ImportGmail() { string MyContactID = GetGroups(); Contact = new List <contacts>(); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.StartIndex = 1; query.ShowDeleted = false; if (MyContactID != "") { query.Group = MyContactID; } Feed <Google.Contacts.Contact> f = cr.Get <Google.Contacts.Contact>(query); int contactsCount = f.Entries.Count(); while (contactsCount > 0) { foreach (Google.Contacts.Contact entry in f.Entries) { contacts contact; if (ConvertContact(entry, out contact)) { Contact.Add(contact); } } query.StartIndex += contactsCount; f = cr.Get <Google.Contacts.Contact>(query); contactsCount = f.Entries.Count(); } /*for (int i = 0; i < Contact.Count; i++) * { * * var item = Contact[i]; * if (item.AvatarUri != null) * { * try * { * item.Avatar = cr.Service.Query(item.AvatarUri); * } * catch (Exception err) * { * * } * Contact.RemoveAt(i); * Contact.Insert(i, item); * } * }*/ }
public async Task <IList <Contact> > ReadContactsAsync(string query) { var secrets = Paths.BinDir.CatDir("client_secret_292564741141-6fa0tqv21ro1v8s28gj4upei0muvuidm.apps.googleusercontent.com.json").Read(GoogleClientSecrets.Load).Secrets; var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( secrets, new string[] { "https://www.google.com/m8/feeds" }, credentialProvider.GetCredential().UserName, CancellationToken.None, null); var parameters = new Google.GData.Client.OAuth2Parameters() { ClientId = secrets.ClientId, ClientSecret = secrets.ClientSecret, RedirectUri = redirectUri, Scope = scope, AccessToken = credential.Token.AccessToken, RefreshToken = credential.Token.RefreshToken, }; var contacts = new ContactsRequest(new RequestSettings("hagen", parameters)); var q = new FeedQuery("https://www.google.com/m8/feeds/contacts/default/full") { Query = query }; var feed = contacts.Get <Contact>(q); var entries = feed.Entries.ToList(); return(entries); }
public void InsertExtendedPropertyContactsTest() { Tracing.TraceMsg("Entering InsertExtendedPropertyContactsTest"); DeleteAllContacts(); RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); rs.AutoPaging = true; FeedQuery query = new FeedQuery(); query.Uri = new Uri(CreateUri(this.resourcePath + "contactsextendedprop.xml")); ContactsRequest cr = new ContactsRequest(rs); Feed <Contact> f = cr.Get <Contact>(query); Contact newEntry = null; foreach (Contact c in f.Entries) { ExtendedProperty e = c.ExtendedProperties[0]; Assert.IsTrue(e != null); newEntry = c; } f = cr.GetContacts(); Contact createdEntry = cr.Insert <Contact>(f, newEntry); cr.Delete(createdEntry); }
public async Task ReadContactsAsync() { var secrets = Paths.BinDir.CatDir("client_secret_292564741141-6fa0tqv21ro1v8s28gj4upei0muvuidm.apps.googleusercontent.com.json").Read(GoogleClientSecrets.Load).Secrets; var credentialProvider = Sidi.CredentialManagement.Factory.GetCredentialProvider("https://www.google.com/m8/feeds"); var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( secrets, new string[] { "https://www.google.com/m8/feeds" }, credentialProvider.GetCredential().UserName, CancellationToken.None, new FileDataStore("Contacts2")); var parameters = new Google.GData.Client.OAuth2Parameters() { ClientId = secrets.ClientId, ClientSecret = secrets.ClientSecret, RedirectUri = redirectUri, Scope = "https://www.google.com/m8/feeds", AccessToken = credential.Token.AccessToken, RefreshToken = credential.Token.RefreshToken, }; var contacts = new ContactsRequest(new RequestSettings("hagen", parameters)); var q = new FeedQuery("https://www.google.com/m8/feeds/contacts/default/full") { Query = "Grimme" }; var feed = contacts.Get <Contact>(q); log.Info(feed.Entries.ListFormat()); }
public void PrintDateMinQueryResults(ContactsRequest cr) { Service service = new ContactsService("EventManagement"); service.setUserCredentials("*****@*****.**", "Vandematram@123"); var token = service.QueryClientLoginToken(); service.SetAuthenticationToken(token); GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("cl", "EventManagement"); authFactory.Token = (String)token; // CalendarService service2 = new CalendarService(authFactory.ApplicationName); service.RequestFactory = authFactory; ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); // query.StartDate = new DateTime(2008, 1, 1); Feed <Contact> feed = cr.Get <Contact>(query); foreach (Contact contact in feed.Entries) { Console.WriteLine(contact.Name.FullName); Console.WriteLine("Updated on: " + contact.Updated.ToString()); } }
public void ModelTestETagQuery() { Tracing.TraceMsg("Entering ModelTestETagQuery"); RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); rs.AutoPaging = true; ContactsRequest cr = new ContactsRequest(rs); Feed <Contact> f = cr.GetContacts(); ContactsQuery q = new ContactsQuery(ContactsQuery.CreateContactsUri(null)); q.Etag = ((ISupportsEtag)f.AtomFeed).Etag; try { f = cr.Get <Contact>(q); foreach (Contact c in f.Entries) { } } catch (GDataNotModifiedException g) { Assert.IsTrue(g != null); } }
public bool AreContactsModifiedToday() { bool areContactsModifiedToday = false; try { RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); // AutoPaging results in automatic paging in order to retrieve all contacts rs.AutoPaging = true; ContactsRequest cr = new ContactsRequest(rs); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); //query.StartDate = new DateTime(2000, 1, 1); query.NumberToRetrieve = int.MaxValue; //query.OrderBy = query.StartDate = DateTime.Now.AddDays(-1); List <ConciseContact> ccList = new List <ConciseContact>(); DateTime today = DateTime.Now.Date; Feed <Contact> feed = cr.Get <Contact>(query); if (feed.TotalResults > 0) { areContactsModifiedToday = true; } } catch (Exception ex) { Logger.LogException(ex); } return(areContactsModifiedToday); }
/// <summary> /// retrieve all profiles for the domain /// </summary> public void GetAllProfiles() { ContactsQuery query = new ContactsQuery("https://www.google.com/m8/feeds/profiles/domain/" + this.domain + "/full"); Feed <Contact> f = cr.Get <Contact>(query); this.profiles = new List <Contact>(f.Entries); }
private Contact LoadGoogleContacts(AtomId id) { string message = "Error Loading Google Contacts. Cannot connect to Google.\r\nPlease ensure you are connected to the internet. If you are behind a proxy, change your proxy configuration!"; Contact ret = null; try { GoogleContacts = new Collection <Contact>(); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 256; query.StartIndex = 0; //Group group = GetGoogleGroupByName(myContactsGroup); //if (group != null) // query.Group = group.Id; //query.ShowDeleted = false; //query.OrderBy = "lastmodified"; Feed <Contact> feed = ContactsRequest.Get <Contact>(query); while (feed != null) { foreach (Contact a in feed.Entries) { GoogleContacts.Add(a); if (id != null && id.Equals(a.ContactEntry.Id)) { ret = a; } } query.StartIndex += query.NumberToRetrieve; feed = ContactsRequest.Get <Contact>(feed, FeedRequestType.Next); } Logger.Log(UserName + " : " + GoogleContacts.Count + " contact(s)", EventType.Debug); } catch (System.Net.WebException ex) { Logger.Log(ex.Message, EventType.Error); //throw new GDataRequestException(message, ex); } catch (System.NullReferenceException ex) { Logger.Log(ex.Message, EventType.Error); //Logger.Log(message, EventType.Error); //throw new GDataRequestException(message, new System.Net.WebException("Error accessing feed", ex)); } return(ret); }
private static void findGroup(string groupname) { GroupsQuery query = new GroupsQuery(GroupsQuery.CreateGroupsUri("default")); query.StartDate = new DateTime(2008, 1, 1); Feed <Group> feed = cr.Get <Group>(query); foreach (Group group in feed.Entries) { if (group.Title == groupname) { HRefMedlem = group.Id; } } }
public List <Contact> ContactsChangedSince(DateTime d) { List <Contact> result = new List <Contact>(); ContactsRequest cr = new ContactsRequest(rs); ContactsQuery q = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); q.StartDate = d; Feed <Contact> feed = cr.Get <Contact>(q); foreach (Contact c in feed.Entries) { result.Add(c); } return(result); }
/// <summary> /// Send authorized queries to a Request-based library /// </summary> /// <param name="service"></param> static void RunContactsSample(OAuth2Parameters parameters) { try { RequestSettings settings = new RequestSettings("Google contacts tutorial", parameters); ContactsRequest cr = new ContactsRequest(settings); //ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); //query.StartDate = new DateTime(2001, 1, 1); //Feed<Contact> feed = cr.Get<Contact>(query); //foreach (Contact contact in feed.Entries) //{ // Console.WriteLine(contact.Name.FullName); // //Console.WriteLine("Updated on: " + contact.Updated.ToString()); //} GroupsQuery query = new GroupsQuery(GroupsQuery.CreateGroupsUri("default")); query.StartDate = new DateTime(2001, 1, 1); Feed <Group> feed = cr.Get <Group>(query); foreach (Group group in feed.Entries) { Console.WriteLine(group.Title); Console.WriteLine("Updated on: " + group.Updated.ToString()); } ////string applicationName = "Test-OAuth2"; ////GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory("apps", applicationName, parameters); ////GroupsService service = new GroupsService(domain, applicationName); ////service.RequestFactory = requestFactory; ////GroupFeed feed = service.RetrieveAllGroups(); ////foreach (GroupEntry group in feed.Entries) ////{ //// Console.WriteLine(group.GroupName); ////} //Feed<Contact> f = cr.GetContacts(); //foreach (Contact c in f.Entries) //{ // Console.WriteLine(c.Name.FullName); //} } catch (Exception a) { Console.WriteLine("A Google Apps error occurred."); Console.WriteLine(); } }
public List <ContactDetail> GetContacts(GooglePlusAccessToken serStatus) { string refreshToken = serStatus.refresh_token; string accessToken = serStatus.access_token; string scopes = "https://www.google.com/m8/feeds/contacts/default/full/"; OAuth2Parameters oAuthparameters = new OAuth2Parameters() { RedirectUri = ConfigurationManager.AppSettings["google_redirect_url"].ToString(), Scope = scopes, AccessToken = accessToken, RefreshToken = refreshToken }; RequestSettings settings = new RequestSettings("<var>" + ConfigurationManager.AppSettings["google_app_name"].ToString() + "</var>", oAuthparameters); ContactsRequest cr = new ContactsRequest(settings); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 5000; Feed <Contact> feed = cr.Get <Contact>(query); StringBuilder sb = new StringBuilder(); int i = 1; List <ContactDetail> contactDetails = new List <ContactDetail>(); foreach (Contact entry in feed.Entries) { ContactDetail contact = new ContactDetail { Name = entry.Title.ToString(), EmailAddress1 = entry.Emails.Count >= 1 ? entry.Emails[0].Address : "", EmailAddress2 = entry.Emails.Count >= 2 ? entry.Emails[1].Address : "", Phone = entry.Phonenumbers.Count >= 1 ? entry.Phonenumbers[0].Value : "", Address = entry.PostalAddresses.Count >= 1 ? entry.PostalAddresses[0].FormattedAddress : "" //Details = entry.Content.Content }; contactDetails.Add(contact); } /*End*/ return(contactDetails); }
public void GetContacts(GooglePlusAccessToken serStatus) { string google_client_id = "yourclientId"; string google_client_sceret = "yourclientSecret"; /*Get Google Contacts From Access Token and Refresh Token*/ string refreshToken = serStatus.refresh_token; string accessToken = serStatus.access_token; string scopes = "https://www.google.com/m8/feeds/contacts/default/full/"; OAuth2Parameters oAuthparameters = new OAuth2Parameters() { ClientId = google_client_id, ClientSecret = google_client_sceret, RedirectUri = "http://www.yogihosting.com/TutorialCode/GoogleContactAPI/google-contact-api.aspx", Scope = scopes, AccessToken = accessToken, RefreshToken = refreshToken }; RequestSettings settings = new RequestSettings("<var>YOUR_APPLICATION_NAME</var>", oAuthparameters); ContactsRequest cr = new ContactsRequest(settings); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 5000; Feed <Contact> feed = cr.Get <Contact>(query); StringBuilder sb = new StringBuilder(); int i = 1; foreach (Contact entry in feed.Entries) { foreach (EMail email in entry.Emails) { sb.Append(i + " ").Append(email.Address).Append("<br/>"); i++; } } /*End*/ dataDiv.InnerHtml = sb.ToString(); }
public Feed <Contact> GetContacts(GooglePlusAccessToken serStatus) { string refreshToken = serStatus.refresh_token; string accessToken = serStatus.access_token; string scopes = "https://www.google.com/m8/feeds/contacts/default/full/"; OAuth2Parameters oAuthparameters = new OAuth2Parameters() { RedirectUri = "http://localhost:2216/index.aspx", Scope = scopes, AccessToken = accessToken, RefreshToken = refreshToken }; RequestSettings settings = new RequestSettings("<var>YOUR_APPLICATION_NAME</var>", oAuthparameters); ContactsRequest cr = new ContactsRequest(settings); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 5000; Feed <Contact> feed = cr.Get <Contact>(query); return(feed); }
public void GetContacts(GooglePlusAccessToken serStatus) { string google_client_id = "yourclientId"; string google_client_sceret = "yourclientSecret"; /*Get Google Contacts From Access Token and Refresh Token*/ string refreshToken = serStatus.refresh_token; string accessToken = serStatus.access_token; string scopes = "https://www.google.com/m8/feeds/contacts/default/full/"; OAuth2Parameters oAuthparameters = new OAuth2Parameters() { ClientId = google_client_id, ClientSecret = google_client_sceret, RedirectUri = "http://www.yogihosting.com/TutorialCode/GoogleContactAPI/google-contact-api.aspx", Scope = scopes, AccessToken = accessToken, RefreshToken = refreshToken }; RequestSettings settings = new RequestSettings("<var>YOUR_APPLICATION_NAME</var>", oAuthparameters); ContactsRequest cr = new ContactsRequest(settings); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 5000; Feed<Contact> feed = cr.Get<Contact>(query); StringBuilder sb = new StringBuilder(); int i = 1; foreach (Contact entry in feed.Entries) { foreach (EMail email in entry.Emails) { sb.Append(i + " ").Append(email.Address).Append("<br/>"); i++; } } /*End*/ dataDiv.InnerHtml = sb.ToString(); }
public void GetContacts(GooglePlusAccessToken serStatus) { /*Get Google Contacts From Access Token and Refresh Token*/ string refreshToken = serStatus.refresh_token; string accessToken = serStatus.access_token; string scopes = "https://www.google.com/m8/feeds/contacts/default/full/"; OAuth2Parameters oAuthparameters = new OAuth2Parameters() { Scope = scopes, AccessToken = accessToken, RefreshToken = refreshToken }; RequestSettings settings = new RequestSettings("<var>YOUR_APPLICATION_NAME</var>", oAuthparameters); ContactsRequest cr = new ContactsRequest(settings); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 5000; Feed <Contact> feed = cr.Get <Contact>(query); StringBuilder sb = new StringBuilder(); int i = 1; foreach (Contact entry in feed.Entries) { foreach (EMail email in entry.Emails) { sb.Append("<span>" + i + ". </span>").Append(email.Address) .Append("<br/>"); i++; } } /*End*/ //dataDiv.InnerHtml = sb.ToString(); }
private void LoadAlbumBackground(object sender, DoWorkEventArgs e) { //albums = new List<PicasaEntry>(); //albumIndex = -1; // Prepare for contact query string applicationName = "DigitalFrame"; string username = settings.Username; string password = settings.Password; RequestSettings contactRequestSettings = new RequestSettings(applicationName, username, password); ContactsRequest contactRequest = new ContactsRequest(contactRequestSettings); // Request all groups of the auth user. //var allGroups = contactRequest.GetGroups(); //foreach (var item in allGroups.Entries) { // Debug.Write(item.Id + " - " + item.Title); //} // Get Family group entry. Group familyGroup; StringBuilder gs = new StringBuilder(GroupsQuery.CreateGroupsUri("default")); gs.Append("/"); gs.Append("e"); // Family try { Feed<Group> gf = contactRequest.Get<Group>(new Uri(gs.ToString())); familyGroup = gf.Entries.First(); } catch (AuthenticationException) { // We fail to get the group which means the login failed. return; } catch (GDataRequestException) { return; } // Get all contacts in Family group. ContactsQuery contactQuery = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); contactQuery.Group = familyGroup.Id; Feed<Contact> friends = contactRequest.Get<Contact>(contactQuery); // Prepare for picasa query service = new PicasaService(applicationName); service.setUserCredentials(username, password); service.SetAuthenticationToken(service.QueryAuthenticationToken()); allPhotos = new List<PicasaEntry>(); foreach (var contact in friends.Entries) { try { string friendUsername = ParseUserName(contact); if (!string.IsNullOrEmpty(friendUsername)) { AlbumQuery query = new AlbumQuery(); query.Uri = new Uri(PicasaQuery.CreatePicasaUri(friendUsername)); PicasaFeed picasaFeed = service.Query(query); if (picasaFeed != null && picasaFeed.Entries.Count > 0) { foreach (PicasaEntry albumEntry in picasaFeed.Entries) { PhotoQuery photosQuery = new PhotoQuery(albumEntry.FeedUri); var photosFeed = (PicasaFeed)service.Query(photosQuery); foreach (PicasaEntry photoEntry in photosFeed.Entries) { allPhotos.Add(photoEntry); } } } } } catch (LoggedException) { // Ignore the exception and continue. } } }
public void ModelTestETagQuery() { const int numberOfInserts = 5; Tracing.TraceMsg("Entering ModelTestETagQuery"); RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); rs.AutoPaging = true; ContactsRequest cr = new ContactsRequest(rs); Feed<Contact> f = cr.GetContacts(); ContactsQuery q = new ContactsQuery(ContactsQuery.CreateContactsUri(null)); q.Etag = ((ISupportsEtag)f.AtomFeed).Etag; try { f = cr.Get<Contact>(q); foreach (Contact c in f.Entries) { } } catch (GDataNotModifiedException g) { Assert.IsTrue(g != null); } }
public static void Main(string [] args) { if (args.Length < 2) { Console.WriteLine ("usage: gcontact-yomigana.exe [username] [password] [--delete]"); return; } if (args.Length > 2 && args [2] == "--delete") { Console.WriteLine ("Cleanup mode"); cleanup = true; } ServicePointManager.ServerCertificateValidationCallback = RemoteCertificateValidationCallback; string username = args [0]; string password = args [1]; var rs = new RequestSettings (app_name, username, password); rs.AutoPaging = true; var cr = new ContactsRequest (rs); #if false var cq = new ContactsQuery (ContactsQuery.CreateContactsUri(null)); cq.Group = "My Contacts"; var results = cr.Get<Contact> (cq); #else var results = cr.GetContacts (); #endif if (cleanup) { foreach (var c in results.Entries) { // these silly null check is required since // setting value to nonexistent field causes AE. if (c.Name.FamilyNamePhonetics != null) c.Name.FamilyNamePhonetics = null; if (c.Name.GivenNamePhonetics != null) c.Name.GivenNamePhonetics = null; #if false // this does not work if (c.ContactEntry.Dirty) Console.WriteLine ("{0} {1} being updated", c.Name.FamilyName, c.Name.GivenName); #else cr.Update<Contact> (c); #endif } #if false // Probably this does not work for extensions results.AtomFeed.Publish (); #endif return; } var l = new List<string> (); var dic = new Dictionary<string,string> (); foreach (var c in results.Entries) CollectName (c.Name, l); // query to mecab server string req = String.Join (" ", l.ToArray ()); byte [] bytes = new WebClient ().DownloadData (server_url_param + req); string res = Encoding.UTF8.GetString (bytes); string [] rl = res.Split (' '); if (rl.Length != l.Count) throw new Exception ("Some error occured. I cannot handle address book entry that contains 'm(__)m'."); for (int i = 0; i < l.Count; i++) { var dst = rl [i].Replace ("m(__)m", " "); if (l [i] != dst) dic [l [i]] = dst; } foreach (var p in dic) Console.Write ("{0}=> {1}, ", p.Key, p.Value); // update foreach (var c in results.Entries) UpdateName (c, dic, cr); #if false // Probably this does not work for extension fields. results.AtomFeed.Publish (); #endif }
public void CreateNewContact() { string gmailUsername; string syncProfile; GoogleAPITests.LoadSettings(out gmailUsername, out syncProfile); ContactsRequest service; var scopes = new List<string>(); //Contacts-Scope scopes.Add("https://www.google.com/m8/feeds"); //Notes-Scope scopes.Add("https://docs.google.com/feeds/"); //scopes.Add("https://docs.googleusercontent.com/"); //scopes.Add("https://spreadsheets.google.com/feeds/"); //Calendar-Scope //scopes.Add("https://www.googleapis.com/auth/calendar"); scopes.Add(CalendarService.Scope.Calendar); UserCredential credential; byte[] jsonSecrets = Properties.Resources.client_secrets; using (var stream = new MemoryStream(jsonSecrets)) { FileDataStore fDS = new FileDataStore(Logger.AuthFolder, true); GoogleClientSecrets clientSecrets = GoogleClientSecrets.Load(stream); credential = GCSMOAuth2WebAuthorizationBroker.AuthorizeAsync( clientSecrets.Secrets, scopes.ToArray(), gmailUsername, CancellationToken.None, fDS). Result; OAuth2Parameters parameters = new OAuth2Parameters { ClientId = clientSecrets.Secrets.ClientId, ClientSecret = clientSecrets.Secrets.ClientSecret, // Note: AccessToken is valid only for 60 minutes AccessToken = credential.Token.AccessToken, RefreshToken = credential.Token.RefreshToken }; RequestSettings settings = new RequestSettings("GoContactSyncMod", parameters); service = new ContactsRequest(settings); } #region Delete previously created test contact. ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 500; Feed<Contact> feed = service.Get<Contact>(query); Logger.Log("Loaded Google contacts", EventType.Information); foreach (Contact entry in feed.Entries) { if (entry.PrimaryEmail != null && entry.PrimaryEmail.Address == "*****@*****.**") { service.Delete(entry); Logger.Log("Deleted Google contact", EventType.Information); //break; } } #endregion Contact newEntry = new Contact(); newEntry.Title = "John Doe"; EMail primaryEmail = new EMail("*****@*****.**"); primaryEmail.Primary = true; primaryEmail.Rel = ContactsRelationships.IsWork; newEntry.Emails.Add(primaryEmail); PhoneNumber phoneNumber = new PhoneNumber("555-555-5551"); phoneNumber.Primary = true; phoneNumber.Rel = ContactsRelationships.IsMobile; newEntry.Phonenumbers.Add(phoneNumber); StructuredPostalAddress postalAddress = new StructuredPostalAddress(); postalAddress.Street = "123 somewhere lane"; postalAddress.Primary = true; postalAddress.Rel = ContactsRelationships.IsHome; newEntry.PostalAddresses.Add(postalAddress); newEntry.Content = "Who is this guy?"; Uri feedUri = new Uri(ContactsQuery.CreateContactsUri("default")); Contact createdEntry = service.Insert(feedUri, newEntry); Logger.Log("Created Google contact", EventType.Information); Assert.IsNotNull(createdEntry.ContactEntry.Id.Uri); Contact updatedEntry = service.Update(createdEntry); Logger.Log("Updated Google contact", EventType.Information); //delete test contacts service.Delete(createdEntry); Logger.Log("Deleted Google contact", EventType.Information); }
public List <ConciseContact> GetContactsWithBirthdaysToday() { RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); // AutoPaging results in automatic paging in order to retrieve all contacts rs.AutoPaging = true; ContactsRequest cr = new ContactsRequest(rs); ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.StartDate = new DateTime(2000, 1, 1); query.NumberToRetrieve = int.MaxValue; //query.OrderBy = query.ModifiedSince = DateTime.Now.AddDays(-10000); List <ConciseContact> ccList = new List <ConciseContact>(); DateTime today = DateTime.Now.Date; Feed <Contact> feed = cr.Get <Contact>(query); Contact dbgC = null; foreach (Contact c in feed.Entries) { try { dbgC = c; if (string.IsNullOrEmpty(c.ContactEntry.Birthday)) { continue; } DateTime birthday = DateTime.Parse(c.ContactEntry.Birthday); if (birthday.Month != today.Month || birthday.Day != today.Day) { continue; } // Birthdays today found ConciseContact cc = new ConciseContact(); cc.FirstName = c.Name.GivenName; cc.LastName = c.Name.FamilyName; if (c.Organizations.Count > 0) { cc.Title = c.Organizations[0].Title; } //c.PrimaryPhonenumber //c.PrimaryPhonenumber //c.Phonenumbers[0] if (c.Phonenumbers.Count > 0) { cc.PhoneNumber = c.Phonenumbers[0].Value; } ccList.Add(cc); Console.WriteLine(c.Title); Console.WriteLine("Name: " + c.Name.FullName); } catch (Exception ex) { Logger.LogException(ex, dbgC.Name.GivenName + " " + dbgC.Name.FamilyName); } } return(ccList); }
public List<Contact> ContactsChangedSince(DateTime d) { List<Contact> result = new List<Contact>(); ContactsRequest cr = new ContactsRequest(rs); ContactsQuery q = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); q.StartDate = d; Feed<Contact> feed = cr.Get<Contact>(q); foreach (Contact c in feed.Entries) { result.Add(c); } return result; }
public override List <EContact> GetContacts(string pCodeForAccessToken) { List <EContact> vListOfContacts = new List <EContact>(); EContact vEContact = null; string vParameters = string.Empty; byte[] vByteArray = null; Stream vPostStream = null; string vResponseFromServer = string.Empty; try { // Get access token HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(LocalConstants.GetGoogleTokenUrl); // https://accounts.google.com/o/oauth2/token webRequest.Method = "POST"; vParameters = string.Format("code={0}&client_id={1}&client_secret={2}&redirect_uri={3}&grant_type=authorization_code", pCodeForAccessToken, LocalConstants.GetClientID, LocalConstants.GetGoogleClientSecret, LocalConstants.GetRedirectUrl); vByteArray = Encoding.UTF8.GetBytes(vParameters); webRequest.ContentType = LocalConstants.GetRequestContentType; webRequest.ContentLength = vByteArray.Length; vPostStream = webRequest.GetRequestStream(); vPostStream.Write(vByteArray, 0, vByteArray.Length); vPostStream.Close(); WebResponse response = webRequest.GetResponse(); vPostStream = response.GetResponseStream(); StreamReader reader = new StreamReader(vPostStream); vResponseFromServer = reader.ReadToEnd(); dynamic vToken = JObject.Parse(vResponseFromServer); OAuth2Parameters oAuthparameters = new OAuth2Parameters() { Scope = LocalConstants.GetGoogleScopeContactsUrl, AccessToken = vToken.access_token, RefreshToken = vToken.refresh_token }; RequestSettings vSettings = new RequestSettings(string.Format("<var>{0}</var>", LocalConstants.GetGoogleAuthApplication), oAuthparameters); ContactsRequest vContactsRequest = new ContactsRequest(vSettings); ContactsQuery vContactsQuery = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); vContactsQuery.NumberToRetrieve = 5000; Feed <Contact> feed = vContactsRequest.Get <Contact>(vContactsQuery); if (feed != null && feed.Entries != null) { foreach (Contact contact in feed.Entries) { foreach (EMail email in contact.Emails) { vEContact = new EContact(); vEContact.FullName = string.IsNullOrEmpty(contact.Title) ? email.Address : contact.Title; vEContact.Email = email.Address; vListOfContacts.Add(vEContact); } } } } catch (Exception vException) { throw vException; } return(vListOfContacts); }
public void CreateNewContact() { string gmailUsername; string syncProfile; LoadSettings(out gmailUsername, out syncProfile); ContactsRequest service; var scopes = new List <string>(); //Contacts-Scope scopes.Add("https://www.google.com/m8/feeds"); //Calendar-Scope scopes.Add(CalendarService.Scope.Calendar); UserCredential credential; byte[] jsonSecrets = Properties.Resources.client_secrets; using (var stream = new MemoryStream(jsonSecrets)) { FileDataStore fDS = new FileDataStore(Logger.AuthFolder, true); GoogleClientSecrets clientSecrets = GoogleClientSecrets.Load(stream); credential = GCSMOAuth2WebAuthorizationBroker.AuthorizeAsync( clientSecrets.Secrets, scopes.ToArray(), gmailUsername, CancellationToken.None, fDS). Result; OAuth2Parameters parameters = new OAuth2Parameters { ClientId = clientSecrets.Secrets.ClientId, ClientSecret = clientSecrets.Secrets.ClientSecret, // Note: AccessToken is valid only for 60 minutes AccessToken = credential.Token.AccessToken, RefreshToken = credential.Token.RefreshToken }; RequestSettings settings = new RequestSettings("GoContactSyncMod", parameters); service = new ContactsRequest(settings); } #region Delete previously created test contact. ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); query.NumberToRetrieve = 500; Feed <Contact> feed = service.Get <Contact>(query); Logger.Log("Loaded Google contacts", EventType.Information); foreach (Contact entry in feed.Entries) { if (entry.PrimaryEmail != null && entry.PrimaryEmail.Address == "*****@*****.**") { service.Delete(entry); Logger.Log("Deleted Google contact", EventType.Information); //break; } } #endregion Contact newEntry = new Contact(); newEntry.Title = "John Doe"; EMail primaryEmail = new EMail("*****@*****.**"); primaryEmail.Primary = true; primaryEmail.Rel = ContactsRelationships.IsWork; newEntry.Emails.Add(primaryEmail); PhoneNumber phoneNumber = new PhoneNumber("555-555-5551"); phoneNumber.Primary = true; phoneNumber.Rel = ContactsRelationships.IsMobile; newEntry.Phonenumbers.Add(phoneNumber); StructuredPostalAddress postalAddress = new StructuredPostalAddress(); postalAddress.Street = "123 somewhere lane"; postalAddress.Primary = true; postalAddress.Rel = ContactsRelationships.IsHome; newEntry.PostalAddresses.Add(postalAddress); newEntry.Content = "Who is this guy?"; Uri feedUri = new Uri(ContactsQuery.CreateContactsUri("default")); Contact createdEntry = service.Insert(feedUri, newEntry); Logger.Log("Created Google contact", EventType.Information); Assert.IsNotNull(createdEntry.ContactEntry.Id.Uri); Contact updatedEntry = service.Update(createdEntry); Logger.Log("Updated Google contact", EventType.Information); //delete test contacts service.Delete(createdEntry); Logger.Log("Deleted Google contact", EventType.Information); }
public void InsertExtendedPropertyContactsTest() { Tracing.TraceMsg("Entering InsertExtendedPropertyContactsTest"); DeleteAllContacts(); RequestSettings rs = new RequestSettings(this.ApplicationName, this.userName, this.passWord); rs.AutoPaging = true; FeedQuery query = new FeedQuery(); query.Uri = new Uri(CreateUri(this.resourcePath + "contactsextendedprop.xml")); ContactsRequest cr = new ContactsRequest(rs); Feed<Contact> f = cr.Get<Contact>(query); Contact newEntry = null; foreach (Contact c in f.Entries) { ExtendedProperty e = c.ExtendedProperties[0]; Assert.IsTrue(e != null); newEntry = c; } f = cr.GetContacts(); Contact createdEntry = cr.Insert<Contact>(f, newEntry); cr.Delete(createdEntry); }