Exemple #1
0
        public static IRestResponse FetchProfileUrl()
        {
            api      Api          = new api("<INSERT_API_KEY>", "<INSERT_API_SECRET>");
            batchApi batchRequest = new batchApi(Api);

            // Create a new batch
            int batchId    = batchRequest.Create();
            var parameters = new api.Parameters();

            parameters.Add("batch-id", batchId);
            parameters.Add("business-names", "La Bernardin\nBernardin Cafe\nBernardin restaraunt");
            parameters.Add("country", "USA");
            parameters.Add("city", "New York");
            parameters.Add("postcode", "10019");
            parameters.Add("local-directory", "google");


            var jobId = Api.Post("/v4/ld/fetch-profile-url", parameters);

            if (jobId.ResponseStatus == ResponseStatus.Completed)
            {
                dynamic job = JsonConvert.DeserializeObject(jobId.Content);
                if (!job.success)
                {
                    string message        = "Error adding job";
                    var    batchException = new ApplicationException(message + job.errors, job.ErrorException);
                    throw batchException;
                }
            }
            else
            {
                throw new ApplicationException(jobId.ErrorMessage);
            }

            // Commit the batch, resturns true or false
            bool commit = batchRequest.Commit(batchId);

            // Poll for results. In a real world example you should do this in a backgroud process, such as HangFire,  or use the Task Parallel Library to create a BackGroundWorker Task.
            // It is bad practice to use Thread.Sleep(). This is only for the example and will actually freeze the UI until the while loop is finished.

            var     results          = batchRequest.GetResults(batchId);
            dynamic directoryResults = JsonConvert.DeserializeObject(results.Content);

            if (directoryResults.success)
            {
                while (directoryResults.status != "Stopped" || directoryResults.status != "Finished")
                {
                    Thread.Sleep(10000);
                    results          = batchRequest.GetResults(batchId);
                    directoryResults = JsonConvert.DeserializeObject(results.Content);
                }
                return(results);
            }
            else
            {
                const string message        = "Error Retrieving batch results ";
                var          batchException = new ApplicationException(message, results.ErrorException);
                throw batchException;
            }
        }
        public static IRestResponse search()
        {
            List <RankingsSearch> searches = new List <RankingsSearch>();

            searches.Add(new RankingsSearch()
            {
                search_engine   = "google",
                country         = "USA",
                google_location = "New York, NY",
                search_term     = "restaurant new york",
                urls            = new List <string>()
                {
                    "le-bernardin.com"
                },
                business_names = new List <string>()
                {
                    "Le Bernardin"
                }
            });
            searches.Add(new RankingsSearch()
            {
                search_engine   = "yahoo",
                country         = "USA",
                google_location = "New York, NY",
                search_term     = "restaurant new york",
                urls            = new List <string>()
                {
                    "le-bernardin.com"
                },
                business_names = new List <string>()
                {
                    "Le Bernardin"
                }
            });


            api      Api          = new api("<INSERT_API_KEY>", "<INSERT_API_SECRET>");
            batchApi batchRequest = new batchApi(Api);

            // Create a new batch
            int batchId    = batchRequest.Create();
            var parameters = new api.Parameters();

            // Add jobs to batch
            foreach (var item in searches)
            {
                // Convert the searches list into parameters for the web requestt
                parameters = batchRequest.convertListToParameters(item);
                parameters.Add("batch-id", batchId);

                var jobId = Api.Post("/v4/rankings/search", parameters);

                if (jobId.ResponseStatus == ResponseStatus.Completed)
                {
                    dynamic job = JsonConvert.DeserializeObject(jobId.Content);
                    if (job.success)
                    {
                        string message        = "Error adding job";
                        var    batchException = new ApplicationException(message + job.errors, job.ErrorException);
                        throw batchException;
                    }
                }
                else
                {
                    throw new ApplicationException(jobId.ErrorMessage);
                }
            }
            // Commit the batch, resturns true or false
            bool commit = batchRequest.Commit(batchId);

            // Poll for results. In a real world example you should do this in a backgroud process, such as HangFire,  or use the Task Parallel Library to create a BackGroundWorker Task.
            // It is bad practice to use Thread.Sleep(). This is only for the example and will actually freeze the UI until the while loop is finished.

            var     results        = batchRequest.GetResults(batchId);
            dynamic rankingResults = JsonConvert.DeserializeObject(results.Content);

            if (rankingResults.success)
            {
                while (rankingResults.status != "Stopped" || rankingResults.status != "Finished")
                {
                    Thread.Sleep(10000);
                    results        = batchRequest.GetResults(batchId);
                    rankingResults = JsonConvert.DeserializeObject(results.Content);
                }
                return(rankingResults);
            }
            else
            {
                const string message        = "Error Retrieving batch results ";
                var          batchException = new ApplicationException(message, results.ErrorException);
                throw batchException;
            }
        }
        public static IRestResponse bulkSearch()
        {
            List <string> searches = new List <string>(
                new string[] {
                "restaurant new york'",
                "restaurant manhattan",
                "restaurant 10019"
            });

            api      Api          = new api("<INSERT_API_KEY>", "<INSERT_API_SECRET>");
            batchApi batchRequest = new batchApi(Api);

            // Create a new batch
            int batchId    = batchRequest.Create();
            var parameters = new api.Parameters();

            parameters.Add("batch-id", batchId);
            parameters.Add("search-engine", "google");
            parameters.Add("country", "USA");
            parameters.Add("telephone", "+1 212-554-1515");
            parameters.Add("google-location", "New York, NY");
            parameters.Add("search-terms", searches);
            parameters.Add("urls", "['le-bernardin.com']");
            parameters.Add("business-names", "['Le Bernardin']");
            var jobId = Api.Post("/v4/rankings/bulk-search", parameters);

            if (jobId.ResponseStatus == ResponseStatus.Completed)
            {
                dynamic job = JsonConvert.DeserializeObject(jobId.Content);
                if (!job.success)
                {
                    string message        = "Error adding job";
                    var    batchException = new ApplicationException(message + job.errors, job.ErrorException);
                    throw batchException;
                }
            }
            else
            {
                throw new ApplicationException(jobId.ErrorMessage);
            }

            // Commit the batch, resturns true or false
            bool commit = batchRequest.Commit(batchId);

            // Poll for results. In a real world example you should do this in a backgroud process, such as HangFire,  or use the Task Parallel Library to create a BackGroundWorker Task.
            // It is bad practice to use Thread.Sleep(). This is only for the example and will actually freeze the UI until the while loop is finished.

            var     results        = batchRequest.GetResults(batchId);
            dynamic rankingResults = JsonConvert.DeserializeObject(results.Content);

            if (rankingResults.success)
            {
                while (rankingResults.status != "Stopped" || rankingResults.status != "Finished")
                {
                    Thread.Sleep(10000);
                    results        = batchRequest.GetResults(batchId);
                    rankingResults = JsonConvert.DeserializeObject(results.Content);
                }
                return(rankingResults);
            }
            else
            {
                const string message        = "Error Retrieving batch results ";
                var          batchException = new ApplicationException(message, results.ErrorException);
                throw batchException;
            }
        }
Exemple #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("BrightLocal Demo");

            List <string> localDirectories = new List <string>();

            localDirectories.Add("google");
            localDirectories.Add("yahoo");
            //localDirectories.Add("facebook");


            api      Api          = new api("api key", "secret");
            batchApi batchRequest = new batchApi(Api);

            // Create a new batch
            int batchId = batchRequest.Create();

            Console.WriteLine($"Batch created: id {batchId}");

            var model = new {
                BusinessNames = "Foo",
                City          = "New York",
                PostalCode    = "90210",
                Telephone     = "2140000000"
            };

            // Add jobs to batch
            foreach (var item in localDirectories)
            {
                var parameters = new api.Parameters();
                parameters.Add("batch-id", batchId);
                parameters.Add("business-names", model.BusinessNames);
                parameters.Add("city", model.City);
                parameters.Add("postcode", model.PostalCode);
                parameters.Add("local-directory", item);
                parameters.Add("country", "USA");

                var jobId = Api.Post("/v4/ld/fetch-reviews-by-business-data", parameters);

                Console.WriteLine($"Job created with id {jobId}");

                // NOTE: ResponseStatus.Completed doesn't exist
                if (jobId.ResponseStatus == jobId.ResponseStatus) //ResponseStatus.Completed)
                {
                    dynamic job = JsonConvert.DeserializeObject(jobId.Content);
                    if (!job.success)
                    {
                        string message        = "Error adding job";
                        var    batchException = new ApplicationException(message + job.errors, job.ErrorException);
                        throw batchException;
                    }
                }
                else
                {
                    throw new ApplicationException(jobId.ErrorMessage);
                }
            }
            // Commit the batch, resturns true or false
            bool commit = batchRequest.Commit(batchId);

            // Poll for results. In a real world example you should do this in a backgroud process, such as HangFire,  or use the Task Parallel Library to create a BackGroundWorker Task.
            // It is bad practice to use Thread.Sleep(). This is only for the example and will actually freeze the UI until the while loop is finished.

            var results        = batchRequest.GetResults(batchId);
            var resultsContent = results.Content;

            LogResults(resultsContent);
            dynamic reviewResults = JsonConvert.DeserializeObject(resultsContent);

            if (reviewResults.success)
            {
                while (reviewResults.status != "Stopped" || reviewResults.status != "Finished")
                {
                    Thread.Sleep(10000);
                    results        = batchRequest.GetResults(batchId);
                    resultsContent = results.Content;
                    LogResults(resultsContent);
                    reviewResults = JsonConvert.DeserializeObject(resultsContent);
                }
                Console.WriteLine($"Results: {reviewResults.ToString()}");
                //return reviewResults;
            }
            else
            {
                const string message        = "Error Retrieving batch results ";
                var          batchException = new ApplicationException(message + reviewResults.errors, results.ErrorException);
                Console.WriteLine("Error: " + batchException.ToString());
                throw batchException;
            }

            Console.WriteLine("Done!");
        }