繁体   English   中英

使用Express进行Yelp API身份验证

[英]Yelp API authentication with Express

我试图向Yelp的API发出GET请求,以便同时使用Express和Nodejs执行简单的搜索,但是我在理解如何使用提供的API密钥设置请求标头方面遇到困难。 使用request我尝试通过文档后通过基本身份验证,但我收到错误。 使用setHeader我也收到错误。

使用Postman,我可以输入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);
}); 

我尝试使用express.js实现Yelp API,但发现使用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文件。
我将Yelp API密钥保存在.env文件中,如下所示: YELP_API_KEY=6fNc0sj5Oyt_jsU2gdeDrlo_1NLm5c-df3f
然后我将其分配给const apiKey并将其用作yelp.client()的参数

yelp-fushion的文档为您提供了有关企业搜索参数的更多详细信息。

最后, client.search()方法将返回response.jsonBody,其中包含您需要的所有数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM