public void TestGetJson()
        {
            search = new GoogleSearch(ht, apiKey);
            JObject data        = search.GetJson();
            JArray  coffeeShops = (JArray)data["local_results"]["places"];
            int     counter     = 0;

            foreach (JObject coffeeShop in coffeeShops)
            {
                Assert.IsNotNull(coffeeShop["title"]);
                counter++;
            }
            Assert.IsTrue(counter >= 1);

            coffeeShops = (JArray)data["organic_results"];
            Assert.IsNotNull(coffeeShops);
            foreach (JObject coffeeShop in coffeeShops)
            {
                Console.WriteLine("Found: " + coffeeShop["title"]);
                Assert.IsNotNull(coffeeShop["title"]);
            }

            // Release socket connection
            search.Close();
        }
        public void TestGetArchive()
        {
            // Skip test on travis ci
            if (apiKey == null || apiKey == "demo")
            {
                return;
            }

            search = new GoogleSearch(ht, apiKey);
            JObject data           = search.GetJson();
            string  id             = (string)((JObject)data["search_metadata"])["id"];
            JObject archivedSearch = search.GetSearchArchiveJson(id);
            int     expected       = GetSize((JArray)data["organic_results"]);
            int     actual         = GetSize((JArray)archivedSearch["organic_results"]);

            Assert.IsTrue(expected == actual);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            // secret api key from https://serpapi.com/dashboard
            String apiKey = Environment.GetEnvironmentVariable("API_KEY");

            if (apiKey == null)
            {
                Console.WriteLine("API_KEY environment variable be set your secret api key visit: https://serpapi.com/dashboard");
                Environment.Exit(1);
            }

            // Localized search for Coffee shop in Austin Texas
            Hashtable ht = new Hashtable();

            ht.Add("q", "Coffee");
            ht.Add("hl", "en");
            ht.Add("google_domain", "google.com");

            GoogleSearch search = new GoogleSearch(ht, apiKey);

            try
            {
                Console.WriteLine("Get location matching: Austin");
                JArray locations = search.GetLocation("Austin,TX", 3);
                foreach (JObject location in locations)
                {
                    Console.WriteLine(location);
                }
                // set location
                search.parameterContext.Add("location", (string)locations[0]["canonical_name"]);

                Console.WriteLine("Search coffee in Austin, Texas on Google [1 credit]");
                JObject data = search.GetJson();
                Console.WriteLine("local coffee shop");
                JArray coffeeShops = (JArray)data["organic_results"];
                foreach (JObject coffeeShop in coffeeShops)
                {
                    Console.WriteLine("Found: " + coffeeShop["title"]);
                }
                Console.WriteLine("organic result coffee shop");
                coffeeShops = (JArray)data["organic_results"];
                foreach (JObject coffeeShop in coffeeShops)
                {
                    Console.WriteLine("Found: " + coffeeShop["title"]);
                }

                string id = (string)((JObject)data["search_metadata"])["id"];
                Console.WriteLine("Search from the archive: " + id + ". [0 credit]");
                JObject archivedSearch = search.GetSearchArchiveJson(id);
                foreach (JObject coffeeShop in (JArray)archivedSearch["organic_results"])
                {
                    Console.WriteLine("Found: " + coffeeShop["title"]);
                }

                //  Get account information
                Console.WriteLine("Account information: [0 credit]");
                JObject account = search.GetAccount();
                Dictionary <string, string> dictObj = account.ToObject <Dictionary <string, string> >();
                foreach (string key in dictObj.Keys)
                {
                    Console.WriteLine(key + " = " + dictObj[key]);
                }
                // write:
                // account_id = xx
                // api_key = xx
                // account_email = [email protected]
                // plan_id =
                // plan_name = No Plan
                // searches_per_month = 0
                // this_month_usage = 0
                // this_hour_searches = 1
                // last_hour_searches = 0
            }
            catch (SerpApiSearchException ex)
            {
                Console.WriteLine("Exception:");
                Console.WriteLine(ex.ToString());
            }
            // Close socket
            search.Close();
        }