2012-03-09 16 views
1

私はPHPを使用して特定の会場の詳細を取得しようとしています。ここで結果を返した後、JSONとしてそれらを処理して、名前、住所、市を表示するには、フォースクエアAPIにGETリクエストを使用しようとする私のコードは次のとおりです。私は間違って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

それはあなたがフォースクエアAPIを使用する前に認証する必要がありますように見えます(Pythonの上)

ので、URLは次のようになります。 –

+0

このタイプのリクエストは、ユーザーとは関係なく公的に利用可能な情報なので、認証が必要ないと思いましたか?認証が必要な場合は、これをどうやって行うのですか? –

+0

あなたは正しいです、認証なしで会場を呼び出すことができますが、Foursquareに自分自身を識別するためにあなたのクライアントのIDと秘密を追加する必要があります – 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)には次のように書いてあります:Acting Userが必要です:いいえ、クライアント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) 
関連する問題