1

Foursquare APIを使用しており、JSON形式のアクセストークン(https://developer.foursquare.com/overview/auth)を受信するために、サーバーにリクエストを送信する必要があります。PHPを使用してこれを行うにはどうすればよいですか?

オンラインで決定的なチュートリアルを見つけられなかったので、ここで質問しています。私は本当に理解していないcURLに関係するいくつかのことを見てきましたが、これを行う簡単な方法はありますか?私はAJAXを使用する前にそれを実行しましたが、それは非常に自明でしたが、PHPでは非常に複雑に見えます。

誰か助けてもらえますか?ありがとう

4

2 に答える 2

1

さて、あなたが提供したリンクに従って、これを試してください:

リダイレクト リンクのスクリプト (YOUR_REGISTERED_REDIRECT_URI)

if(isset($_GET['code']))
{
    $code = $_GET['code'];
    $url = "https://foursquare.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=$code";

    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_POST);

    $json = curl_exec($ch);

    var_dump($json);
}

注:提供されたチュートリアルを読んだ後、POSTリクエストへの参照は見られず、リクエストのみだったので、(cURLの代わりに)これを試すことができます

$json = file_get_contents($url);

単純な GET リクエストの場合、file_get_contents はおそらく機能します。

于 2012-07-31T23:42:02.187 に答える
1
<?php

# url_get_contents function by Andy Langton: http://andylangton.co.uk/

function url_get_contents($url,$useragent='cURL',$headers=false,$follow_redirects=false,$debug=false) {

# initialise the CURL library
$ch = curl_init();

# specify the URL to be retrieved
curl_setopt($ch, CURLOPT_URL,$url);

# we want to get the contents of the URL and store it in a variable
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

# specify the useragent: this is a required courtesy to site owners
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);

# ignore SSL errors
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

# return headers as requested
if ($headers==true){
curl_setopt($ch, CURLOPT_HEADER,1);
}

# only return headers
if ($headers=='headers only') {
curl_setopt($ch, CURLOPT_NOBODY ,1);
}

# follow redirects - note this is disabled by default in most PHP installs from 4.4.4 up
if ($follow_redirects==true) {
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
}

# if debugging, return an array with CURL's debug info and the URL contents
if ($debug==true) {
$result['contents']=curl_exec($ch);
$result['info']=curl_getinfo($ch);
}

# otherwise just return the contents as a variable
else $result=curl_exec($ch);

# free resources
curl_close($ch);

# send back the data
return $result;
}

?>
于 2012-07-31T23:35:07.860 に答える