Good evening everyone. I'm a beginner to API's in general and need some help with Yelp's Fusion API. I think there is some error with my Authorization Variable/Header. I run the request and get a 404 error. Can someone provide some clarity?
You can find more details on Yelp API on this link: https://www.yelp.com/developers/documentation/v3/business_search
import requests url = 'https://api.yelp.com/v3/businesses/search/'; header = {'Authorization':'Bearer MYLONGTOKENx'} response = requests.get(url, headers = header) print(response.status_code)
See the example below, swap the key (xxxxxxxxxxxx) with your api key; I wrote this example for someone before I figure it will help you; in this example we'll make a secure call to Yelp's Business Search API and return back the JSON; parse it and use its values in a simple example; hope it helps!
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous"> <title>Ilan's Test</title> </head> <body> <div class="container"> <div class="row"> <div class="col-lg-12"> <div id="results"> </div> </div> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em" crossorigin="anonymous"></script> <script> var myurl = "https://cors-anywhere.herokuapp.com/https://api.yelp.com/v3/businesses/search?term=by-chloe&location=boston"; $.ajax({ url: myurl, headers: { 'Authorization':'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', }, method: 'GET', dataType: 'json', success: function(data){ // Grab the results from the API JSON return var totalresults = data.total; // If our results are greater than 0, continue if (totalresults > 0){ // Display a header on the page with the number of results $('#results').append('<h5>We discovered ' + totalresults + ' results!</h5>'); // Itirate through the JSON array of 'businesses' which was returned by the API $.each(data.businesses, function(i, item) { // Store each business's object in a variable var id = item.id; var alias = item.alias; var phone = item.display_phone; var image = item.image_url; var name = item.name; var rating = item.rating; var reviewcount = item.review_count; var address = item.location.address1; var city = item.location.city; var state = item.location.state; var zipcode = item.location.zip_code; // Append our result into our page $('#results').append('<div id="' + id + '" style="margin-top:50px;margin-bottom:50px;"><img src="' + image + '" style="width:200px;height:150px;"><br>We found <b>' + name + '</b> (' + alias + ')<br>Business ID: ' + id + '<br> Located at: ' + address + ' ' + city + ', ' + state + ' ' + zipcode + '<br>The phone number for this business is: ' + phone + '<br>This business has a rating of ' + rating + ' with ' + reviewcount + ' reviews.</div>'); }); } else { // If our results are 0; no businesses were returned by the JSON therefor we display on the page no results were found $('#results').append('<h5>We discovered no results!</h5>'); } } }); </script> </body> </html>