javascript - 使用 Express 进行 Yelp API 身份验证
问题描述
我正在尝试向 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 包含您需要的所有数据。
推荐阅读
- swiftui - 如何为 SwiftUI ViewRepresentable 制作自定义 MKMapView 委托操作?
- python - Python - 将函数应用于二维数组
- python - 循环格式化请求有效负载
- stripe-payments - 如何使用 Stripe Connect Express 创建发票,在 Stripe Subscriptions 上自动创建发票,但不是在 Stripe Connect 付款上
- xquery - xquery中特定日期格式之间的日期比较
- python - 根据 Python Pandas 中 DataFrame 中的值求和?
- php - 未定义变量:工厂 Laravel 8 Livewire
- ruby - 在葡萄 API 中发送字符串数组
- wpf - 如何进行批处理以将“XAML 样式器”应用于 Visual Studio 2019 项目中的所有 xaml 文件
- sql - SQL lite 查询 - 合并时间段