2012-11-23 26 views
5

ちょっと、私はfoursquare APIを学び始めましたが、私はアクセストークンを取得しようとしています。 ここに私が見つけたコードの一部があります。curlを使用してJSONレスポンスを取得する方法

 // build url 
    $url = 'https://foursquare.com/oauth2/access_token'; 
    $url .= '?client_id='.CLIENT_ID; 
    $url .= '&client_secret='.CLIENT_SECRET; 
    $url .= '&grant_type=authorization_code'; 
    $url .= '&redirect_uri=**********/callback'; //change to your 4sq callback 
    $url .= '&code='.$code; 

    // call to https://foursquare.com/oauth2/access_token with $code 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $result = curl_exec($ch); 

しかし、これはうまくいかなかったため、エラーが見つかりました。最初に$ urlをエコーし​​、そのリンクを手動でクリックしました。それは働いて、foursquareは私にjson形式のアクセストークンを返しました。したがって、問題はコードのカール部分にあります。

私のエラーがありますか?さらに重要なことに、カールについて学ぶためのリソースを教えていただけますか?

EDIT: 私はのvar_dump($結果)やったし、出力が「偽ブール」です

答えて

6

問題があります。http * *は、追加してみてくださいこれら:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
+0

うん!あなたの答えの直前にecho curl_error($ ch)を試してみました。出力はSSL検証に関するものでした。私はそれを探していました。回答は質問^^ – Hasan

+0

より速く、うまくいきました。どうも – Hasan

2

それがPOSTの場合は、要求が、これはそれを行うための適切な方法である:

$body.='client_id='.CLIENT_ID etc. 
$c = curl_init(); 
curl_setopt($c, CURLOPT_URL, $url); 
curl_setopt ($c, CURLOPT_POST, true); 
curl_setopt ($c, CURLOPT_POSTFIELDS, $body); 
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true); 
$page = curl_exec ($c); 
curl_close ($c); 
+0

"" 未定義の定数CURLOPT_GETの使用 - 仮定 'CURLOPT_GET' "" – Hasan

+0

はい、申し訳ありませんでしたしばらくの間、GETメソッドを使用しないでください。http://codular.com/curl-with-phpを確認してください。 – cezar

+0

また、ヘッダをjson curl_setopt(CURLOPT_HTTPHEADER、 'Content-type:application/json')に設定する必要があります。 ; – cezar

関連する問題