有点奇怪。我正在构建一个与Foursquare API交互的React js应用程序,主要是为了了解React js和API。
我正在使用Foursquare获取Venue信息,这很好用。我也想用它来获取有趣的场地照片。
处理对场地的原始呼叫的方法如下。我只是把它放在这里提供一个控件,因为这工作正常。它返回我在应用程序中处理的场地信息,没有问题:
getVenues: (searchTerm) => {
const urlToFetch =
${urlExplore}${searchTerm}&limit=10&client_id=${clientId}&client_secret=${clientSecret}&v=20180602
;
return fetch(urlToFetch).then( response => {
return response.json();
}).then( jsonResponse => {
if (jsonResponse.response.groups[0].items) {
return jsonResponse.response.groups[0].items.map(item => (
{
id: item.venue.id,
name: item.venue.name,
// blah
}
));
} else {
return [];
}
})
}
到目前为止,这么好,它运作良好。但是,当我尝试访问照片端点的相同方法时,该方法返回一系列包含meta的对象,其中包含:
代码:400 errorDetail:“缺少访问凭据。请参阅 https://developer.foursquare.com/docs/api/configuration/authentication 细节。” errorType:“invalid_auth”
我只想说所提供的链接上的信息实际上没有多大帮助: - (
我用来获取照片信息的方法是:
getVenuePhotos: (venueId) => {
const fetchPhotosURL = `${urlPhotos}${venueId}/photos&limit=10&client_id=${clientId}&client_secret=${clientSecret}&v=20180602`;
return fetch(fetchPhotosURL).then( response => {
return response.json();
}).then( jsonResponse => {
console.log(jsonResponse);
//blah - removed to save space - see method above, it's pretty much the same
})
}
...两者都存储在反应组件导入的单独文件中的对象中。
url vars解析如下(星号是我的补充):
fetchVenuesURL: https://api.foursquare.com/v2/venues/explore?near=london&limit=10&client_id=**** &client_secret=****&v=20180602
fetchPhotosURL: https://api.foursquare.com/v2/venues/4ac518eff964a52064ad20e3/photos&limit=10&client_id=**** &client_secret=****&v=20180602
有谁知道为什么会这样?
提前致谢
答案 0 :(得分:1)
我认为您的网址中存在拼写错误。
替换
${urlPhotos}${venueId}/photos&limit=10&client...
与
${urlPhotos}${venueId}/photos?limit=10&client...