Exemple #1
0
        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;
        }
Exemple #2
0
        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();
        }
Exemple #3
0
 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;
            }
        }
Exemple #5
0
        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;
        }
Exemple #6
0
 public void Dispose()
 {
     m_settings = null;
     m_cla      = null;
 }