0

Foursquare で特定のユーザーのアクセス トークンを取得する cURL 関数をテストしています。次の関数は、アクセス トークンを json 形式で画面に出力します。

{"access_token":"5B25GW5LF3L4W04PALHK32X5Z3YGNUUVDHM2TFBQOWZSQ121"} 

アクセス トークンの値の抽出に問題があります。

これは私が使用している機能です:

関数 get_access_token($code){

        $url = "https://foursquare.com/oauth2/access_token";

        $fields = array(
            'client_id' => urlencode($this->client_id),
            'client_secret' => urlencode($this->client_secret),
            'grant_type' => 'authorization_code',
            'redirect_uri' => urlencode($this->redirect_url),
            'code' => $code
        );

        //url-ify the data for the POST
        foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
        rtrim($fields_string, '&');

        //open connection
        $ch = curl_init();

        //set the url, number of POST vars, POST data
        curl_setopt($ch,CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_POST, count($fields));
        curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

        //execute post
        $result = curl_exec($ch);
        //close connection
        curl_close($ch);

        return var_dump($result) /* prints bool(true) */;
    }

このアクセス トークンを変数に格納するにはどうすればよいですか?

ありがとうございました

4

2 に答える 2

0

デフォルトでは、curl_exec は応答を返しませんが、成功または失敗を示す値を返します。詳細については、 http://php.net/manual/en/function.curl-exec.phpにアクセスしてください。

于 2012-10-09T20:49:03.230 に答える
0

戻り値を curl_exec と $result 変数に渡すように curl に指示するコードをもう 1 行追加するだけです。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

データが戻ってきたときにエラーが発生したかどうかを確認することもできます。たとえば、次のようになります。

$result = curl_exec($ch);
if (curl_errno($ch)) 
   echo (curl_error($ch));
else
   echo $result;
curl_close($ch);
于 2012-11-12T02:37:11.513 に答える