我正在使用Firebase创建一个React应用程序,以实现基本的后端功能。
我尝试使用Yelp API,但总是收到MISSING_PARAMETER和CORS错误。
这是我的代码:
import OAuth from 'oauth-1.0a';
const oauth = OAuth({
consumer: {
public: 'public',
secret: 'secret'
},
signature_method: 'HMAC-SHA1'
});
const url = "https://api.yelp.com/v2/";
const token = {
public: 'public',
secret: 'secret'
};
class YelpWrapper {
static prepareSearch(term, category) {
const requestData = {
url: url + "search/?term=" + term + "&category_filter=" + category + encodeURIComponent("&location=Los Angeles, CA"),
method: "POST"
};
return {
requestData: requestData,
headers: oauth.toHeader(oauth.authorize(requestData, token))
};
}
}
export default YelpWrapper;
,这在
中调用static addMemory(memory) {
const { id, category, text, name } = memory;
newMemoryRef(id).set(memory);
const search = YelpWrapper.prepareSearch(name, category);
const { url, method } = search.requestData;
const { headers } = search;
request({
url: url,
method: method,
headers: headers
}, (error, response, body) => {
console.log(error);
console.log(response);
console.log(body);
});
}
以下是我遇到的缺失参数错误
{"error": {"text": "One or more parameters are missing in request", "id": "MISSING_PARAMETER", "field": "oauth_consumer_key"}}
虽然当我打印headers
时,我可以看到其中定义的所有必需标头,但出于某种原因,它们不会出现在Chrome开发工具的请求标头中。我认为这是原因,但我无法弄清楚为什么会这样。