[英]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.