2012-03-09 159 views
1

因此,我試圖使用PHP獲取具體場地的詳細信息。這裏是我的代碼,試圖使用GET請求,Foursquare的API返回的結果,然後處理它們作爲JSON和顯示名稱,地址和城市:如何使用Foursquare API獲取場地詳細信息

$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

它看起來像你需要進行身份驗證,然後才能使用Foursquare的API 。 – 2012-03-09 10:20:28

+0

我認爲這種類型的請求不需要認證,因爲它與用戶無關,只是公開提供的信息?如果我確實需要認證,我該如何去做這件事? – 2012-03-09 10:55:30

+0

你是對的,你可以在沒有身份驗證的情況下打電話給場館,但是你需要將你的客戶端ID和祕密添加到Foursquare – Martin 2012-03-09 11:08:50

回答

4

你不需要使用OAuth的流量獲取地點信息進行身份驗證,但你需要添加您的客戶端ID和客戶端祕密到API調用。

因此,URL應該是這樣的:

"https://api.foursquare.com/v2/venues/4b522afaf964a5200b6d27e3?client_id=CLIENT_ID&client_secret=CLIENT_SECRET 
+0

啊非常感謝你的回覆!我如何找出我的客戶ID和密碼?此外,顯示JSON的代碼看起來是否正確?我對這個東西很不熟悉,因爲你可能會說出來! – 2012-03-09 11:36:04

+0

您可以在這裏註冊一個客戶端ID和密碼:https://foursquare.com/oauth/ 至於json解析我不知道 - 不是一個PHP的傢伙,我害怕。 – Martin 2012-03-09 14:14:14

+0

非常感謝,仍然苦於JSON解析,並且似乎無法使任何非常奇怪的頭部方式! – 2012-03-10 20:05:41

0

如果您轉到獲取此URL的URL,則需要驗證您的請求。

{"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

+0

同樣在這裏,但我不明白,爲什麼。在官方開發者頁面(https://developer.foursquare.com/docs/venues/venues)中寫道:需要代理用戶:不,如果客戶端ID和祕密應該足夠。有什麼想法嗎? – Analizer 2014-08-14 14:41:42

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) 
相關問題