2017-10-12 6 views
1

私はphpとOAuthを初めて使います。ログインとコードのリダイレクトに成功しました。また、これによってアクセストークンを取得することもできます。

if (isset($_GET['code'])) { 
    $code = $_GET['code']; 
    $url = 'https://accounts.google.com/o/oauth2/token'; 
    $params = array(
     "code" => $code, 
     "client_id" => '123456789-123456789.apps.googleusercontent.com', 
     "client_secret" => '4tyajnbsd_fgjkhlkitu', 
     "redirect_uri" => 'https://example.com/loader/land.php', 
     "grant_type" => "authorization_code" 
    ); 

    $ch = curl_init(); 
    curl_setopt($ch, constant("CURLOPT_" . 'URL'), $url); 
    curl_setopt($ch, constant("CURLOPT_" . 'POST'), true); 
    curl_setopt($ch, constant("CURLOPT_" . 'POSTFIELDS'), $params); 

    $output = curl_exec($ch); 
    echo $output['access_token']; // not working to output only access token 
    $info = curl_getinfo($ch); 
    curl_close($ch); 

} 

結果は画像と同じです。 result from the code

しかし、私はOAuthのに非常に新しいですし、唯一

echo $output['access_token']; 

そしてまた、その出力後に死亡PHPと私の既存のコードに続けることができないことにより、アクセストークンを持つことができることはできません。私のために見つけることは非常に困難です。私は初心者です。私は助けてください。私は他の残りのプロセスのためにaccess_tokenを取得する必要があります。事前にありがとうございます。

+0

var_dump($ output)? – AZinkey

+0

@AZinkey、 "bool(true)"を返します。どうしたらいいの? –

+0

このコード全体が関数内にありますか? 'return'があるので、実際には関数定義を見ることができません。 – Twinfriends

答えて

2

出力がJSON形式のようです。値にアクセスするには、その値にアクセスする前にjson_decode()$output変数にする必要があります。ただ、このような

echo json_decode($output, true)['access_token']; 


編集: はまた、あなたはカールしようとしているWebページからの実際の結果を得るためにcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);を追加する必要があります。詳細についてはcurl_exec()を参照してください:

返しTRUE成功した場合に、失敗した場合にFALSE CURLOPT_RETURNTRANSFERオプションが設定されている場合は、は、それが失敗した場合に、成功FALSEを結果を返します。

+1

ありがとう、私を救った:) –

関連する問題