2012-03-09 2 views
1

그래서 PHP를 사용하여 특정 장소에 대한 세부 정보를 얻으려고합니다.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 />"; 
      }  

내가 잘못 뭐하는 거지 : 여기에 이름, 주소 및 도시를 결과를 반환하기 위해 포 스퀘어 API에 GET 요청을 사용하고 JSON으로 그들을 처리하고 표시하기 위해 시도 내 코드는? 필자는 PHP와 Foursquare API에 완전히 익숙하지 않기 때문에 눈에 띄게 분명 할 수 있습니다.

+0

그것은 당신이 포 스퀘어 API를 사용하기 전에 인증 할 필요가있는 것 같습니다 (파이썬)

그래서, URL 같은 것을해야한다 . –

+0

이 유형의 요청은 사용자와 관련이 없으며 공개적으로 사용 가능한 정보이므로 인증이 필요하지 않다고 생각했습니다. 인증이 필요한 경우 어떻게해야합니까? –

+0

맞습니다. 인증없이 장소를 호출 할 수는 있지만, 클라이언트 ID와 비밀 번호를 추가하여 Foursquare에 자신을 식별시켜야합니다. – Martin

답변

4

하는 당신은 장소 정보를 얻을 수의 OAuth 흐름을 사용하여 인증 할 필요가 없습니다,하지만 당신은 당신의 클라이언트 ID를 추가해야합니까 API 호출에 대한 클라이언트 비밀.

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

아, 답장을 보내 주셔서 대단히 감사합니다! 내 고객 ID와 비밀은 어떻게 찾습니까? 또한 JSON 모양을 올바르게 표시하는 코드가 올바른 것입니까? 나는 당신이 아마 말할 수있는 것처럼이 재료로 매우 경험이 없습니다! –

+0

고객 ID와 비밀 번호는 여기에서 신청할 수 있습니다. https://foursquare.com/oauth/ json 파싱에 관해서는 잘 모르겠지만 PHP 사용자는 아닙니다. – Martin

+0

JSON 구문 분석에 여전히 어려움을 겪고 있으며 극도로 이상한 머리를 만들 수없는 것처럼 보입니다. –

0

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

0
이 나를 위해 일

:

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) 
관련 문제