所以我正在尝试使用PHP获取特定场所的详细信息。这是我的代码尝试使用GET请求到Foursquare API返回结果,然后将它们作为JSON处理并显示名称,地址和城市:
$curlhandle = curl_init();
curl_setopt($curlhandle, CURLOPT_URL, "https://api.foursquare.com/v2/venues/4b522afaf964a5200b6d27e3");
curl_setopt($curlhandle, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curlhandle);
curl_close($curlhandle);
$json = json_decode($response);
foreach ($json->groups[0]->venues as $result)
{
echo $result->name.' - '.$result->address.' '.$result->city."<p />";
}
我做错了什么?我完全不熟悉PHP和Foursquare API,所以它可能是显而易见的。
答案 0 :(得分:4)
您无需使用OAuth流进行身份验证即可获取场地信息,但您需要在API调用中添加客户端ID和客户端密钥。
因此,URL应该是:
"https://api.foursquare.com/v2/venues/4b522afaf964a5200b6d27e3?client_id=CLIENT_ID&client_secret=CLIENT_SECRET
答案 1 :(得分:0)
如果您转到获得此网址的网址,则需要对您的请求进行身份验证。
{"meta":{"code":400,"errorType":"invalid_auth","errorDetail":"Missing access credentials. See https:\/\/developer.foursquare.com\/docs\/oauth.html for details."},"response":{}}
所以我要说你需要通过以下方式进行身份验证:https://developer.foursquare.com/overview/auth.html
答案 2 :(得分:0)
这对我有用:(在Python上)
url = 'https://api.foursquare.com/v2/venues/{0}'.format(self.placeid)
params = dict(
client_id=self.clientid,
client_secret=self.clientsecret,
v='20170801'
)
r = requests.get(url=url, params=params)
答案 3 :(得分:0)
在JavaScript中,URL应该为
`https://api.foursquare.com/v2/venues/${venue_id}?client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&v=20180323`
注意,我使用的是模板文字,不要忘记v=20180323
,因为Foursquare API不再支持不传递版本参数的请求。当然,您可以修改版本号以保持更新。