public GoogleDocs(string url, Dictionary<string, string> options) { var uri = new Utility.Uri(url); m_folder = uri.HostAndPath; if (m_folder.EndsWith("/")) m_folder = m_folder.Substring(0, m_folder.Length - 1); string username = null; string password = null; if (options.ContainsKey("auth-username")) username = options["auth-username"]; if (options.ContainsKey("auth-password")) password = options["auth-password"]; if (options.ContainsKey(USERNAME_OPTION)) username = options[USERNAME_OPTION]; if (options.ContainsKey(PASSWORD_OPTION)) password = options[PASSWORD_OPTION]; if (!string.IsNullOrEmpty(uri.Username)) username = uri.Username; if (!string.IsNullOrEmpty(uri.Password)) password = uri.Password; string labels; if (!options.TryGetValue(ATTRIBUTES_OPTION, out labels)) labels = DEFAULT_LABELS; m_labels = (labels ?? "").Split(new string[] {","}, StringSplitOptions.RemoveEmptyEntries); if (string.IsNullOrEmpty(username)) throw new Exception(Strings.GoogleDocs.MissingUsernameError); if (string.IsNullOrEmpty(password)) throw new Exception(Strings.GoogleDocs.MissingPasswordError); m_cla = new Google.GData.Client.ClientLoginAuthenticator(USER_AGENT, Google.GData.Client.ServiceNames.Documents, username, password); m_settings = new Google.GData.Client.RequestSettings(USER_AGENT, username, password); m_settings.AutoPaging = true; }
public GoogleDocs(string url, Dictionary<string, string> options) { Match m = URL_PARSER.Match(url); if (!m.Success) throw new Exception(string.Format(Strings.GoogleDocs.InvalidUrlError, url)); m_folder = m.Groups["folder"].Value; if (m_folder.EndsWith("/")) m_folder = m_folder.Substring(0, m_folder.Length - 1); string username = null; string password = null; if (options.ContainsKey("ftp-username")) username = options["ftp-username"]; if (options.ContainsKey("ftp-password")) password = options["ftp-password"]; if (options.ContainsKey(USERNAME_OPTION)) username = options[USERNAME_OPTION]; if (options.ContainsKey(PASSWORD_OPTION)) password = options[PASSWORD_OPTION]; string labels; if (!options.TryGetValue(ATTRIBUTES_OPTION, out labels)) labels = DEFAULT_LABELS; m_labels = (labels ?? "").Split(new string[] {","}, StringSplitOptions.RemoveEmptyEntries); if (string.IsNullOrEmpty(username)) throw new Exception(Strings.GoogleDocs.MissingUsernameError); if (string.IsNullOrEmpty(password)) throw new Exception(Strings.GoogleDocs.MissingPasswordError); m_cla = new Google.GData.Client.ClientLoginAuthenticator(USER_AGENT, Google.GData.Client.ServiceNames.Documents, username, password); m_settings = new Google.GData.Client.RequestSettings(USER_AGENT, username, password); m_settings.AutoPaging = true; m_service = new Google.GData.Client.Service(); }
public void Dispose() { m_settings = null; m_cla = null; }
public string GoogleContactLookup(string oAuthToken, string lookup) { try { if (oAuthToken.IsNullOrBlank()) { Log("Error calling GoogleContactLookup, the OAuth token parameter was empty."); return null; } else if (lookup.IsNullOrBlank()) { Log("Error calling GoogleContactLookup, the lookup parameter was empty."); return null; } else { Log("Starting Google Contact Lookup for " + lookup + "."); Google.GData.Client.OAuth2Parameters parameters = new Google.GData.Client.OAuth2Parameters { ClientId = _googleApiClientID, ClientSecret = _googleApiClientSecret, AccessToken = "x", //accessToken, RefreshToken = oAuthToken.Trim() }; Google.GData.Client.RequestSettings settings = new Google.GData.Client.RequestSettings("SIPSorcery-DialPlan", parameters); Google.Contacts.ContactsRequest cr = new Google.Contacts.ContactsRequest(settings); //Google.GData.Client.Feed<Google.Contacts.Contact> feed = cr.GetContacts(); Google.GData.Client.Feed<Google.Contacts.Contact> feed = cr.Get<Google.Contacts.Contact>( new System.Uri("https://www.google.com/m8/feeds/contacts/default/full?q=" + lookup + "&v=3.0")); if (feed != null && feed.Entries != null && feed.Entries.Count() > 0) { var entry = feed.Entries.First(); if (entry.Name != null && entry.Name.FullName.NotNullOrBlank()) { Log("Result found Google Contact Lookup for " + lookup + " of " + entry.Name.FullName + "."); return entry.Name.FullName; } else { Log("A result was found Google Contact Lookup for " + lookup + " but the FullName field was empty."); return null; } } else { Log("No result was found with a Google Contact Lookup for " + lookup + "."); return null; } } //return GoogleContactLookupAysnc(username).Result; //ContactsService service = new ContactsService("sipsorcery-lookup"); //((GDataRequestFactory)service.RequestFactory).KeepAlive = false; //service.setUserCredentials(username, password); //var result = service.QueryClientLoginToken(); //Log("Google contact authentication result " + result + "."); //var query = new ContactsQuery(ContactsQuery.CreateContactsUri("default")); //query.ExtraParameters = "q=" + lookup + "&max-results=1"; //ContactsFeed feed = service.Query(query); //if (feed != null && feed.Entries != null && feed.Entries.Count > 0) //{ // var entry = feed.Entries.First() as ContactEntry; // if (entry.Name != null && entry.Name.FullName.NotNullOrBlank()) // { // Log("Result found Google Contact Lookup for " + lookup + " of " + entry.Name.FullName + "."); // return entry.Name.FullName; // } // else // { // Log("A result was found Google Contact Lookup for " + lookup + " but the FullName field was empty."); // return null; // } //} //else //{ // Log("No result was found with a Google Contact Lookup for " + lookup + "."); // return null; //} } catch (Exception excp) { Log("Exception in GoogleContactLookup. " + excp.Message); return null; } }
public GoogleDocs(string url, Dictionary <string, string> options) { var uri = new Utility.Uri(url); m_folder = uri.HostAndPath; if (m_folder.EndsWith("/")) { m_folder = m_folder.Substring(0, m_folder.Length - 1); } string username = null; string password = null; if (options.ContainsKey("auth-username")) { username = options["auth-username"]; } if (options.ContainsKey("auth-password")) { password = options["auth-password"]; } if (options.ContainsKey(USERNAME_OPTION)) { username = options[USERNAME_OPTION]; } if (options.ContainsKey(PASSWORD_OPTION)) { password = options[PASSWORD_OPTION]; } if (!string.IsNullOrEmpty(uri.Username)) { username = uri.Username; } if (!string.IsNullOrEmpty(uri.Password)) { password = uri.Password; } string labels; if (!options.TryGetValue(ATTRIBUTES_OPTION, out labels)) { labels = DEFAULT_LABELS; } m_labels = (labels ?? "").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (string.IsNullOrEmpty(username)) { throw new Exception(Strings.GoogleDocs.MissingUsernameError); } if (string.IsNullOrEmpty(password)) { throw new Exception(Strings.GoogleDocs.MissingPasswordError); } m_cla = new Google.GData.Client.ClientLoginAuthenticator(USER_AGENT, Google.GData.Client.ServiceNames.Documents, username, password); m_settings = new Google.GData.Client.RequestSettings(USER_AGENT, username, password); m_settings.AutoPaging = true; }
public void Dispose() { m_settings = null; m_cla = null; }