Аутентификация API Yelp с помощью Express - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь выполнить GET-запрос к API Yelp, чтобы выполнить простой поиск с использованием Express и Nodejs, однако у меня возникают проблемы с пониманием того, как установить заголовок запроса с помощью предоставленного ключа API.Используя request я попытался пройти базовую аутентификацию, следуя документации, но получаю ошибки.Используя setHeader я также получил ошибки.

Используя Почтальон, я могу вводить ключи API и получать ответы без проблем.Я понимаю, что для этого есть пакеты, но я думаю, что было бы неплохо учиться без использования дополнительных зависимостей, если это возможно.

var express = require("express"); 
var app = express();
var request = require("request");

request.get('https://api.yelp.com/v3/businesses/search', function (error, 
response, body) {
'auth': {
  'bearer': 'api_key_here'
}
});

app.listen(3000)

Редактировать: мне удалось исправить функцию обратного вызова (она передавала заголовок), и теперь я могу работать, однако теперь я получаю {"error": {"code": "TOKEN_MISSING", "description": "An access token must be supplied in order to use this endpoint."}}.Я все еще не понимаю, что я делаю здесь неправильно, поскольку ключ API работает в POSTMAN.

var express = require("express"); 
var app = express();
var request = require("request");

request.get('https://api.yelp.com/v3/businesses/search', {
'Authorization': {
Bearer: 'api key'
}}
function(error, response, body){
console.log(body);
}); 

1 Ответ

0 голосов
/ 09 декабря 2018

Я пытался использовать express.js для реализации API Yelp, но я обнаружил, что использовать yelp-fushion гораздо проще.

Я реализовал это, как показано ниже:

require('dotenv').config();

const yelp = require('yelp-fusion');

const apiKey = process.env.YELP_API_KEY;

const searchRequest = {
  term: 'restaurants',
  location: 'Los Angeles',
};

const client = yelp.client(apiKey);

client.search(searchRequest)
  .then((response) => {
    console.log(response.jsonBody);
  })
  .catch((error) => {
    console.log(error);
  });

Первая строка - использовать файл .env.
Я сохранил свой ключ API Yelp в файле .env следующим образом: YELP_API_KEY=6fNc0sj5Oyt_jsU2gdeDrlo_1NLm5c-df3f.
Затем я присвоил его const apiKey и использовал в качестве аргумента yelp.client()

yelp-fushion docs предоставляет более подробную информацию о параметрах для поиска предприятий.

Наконец, метод client.search() вернет response.jsonBody, содержащий все данные, которые вынеобходимость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...