2017-10-12 2 views
1

Ich bin neu in PHP und OAuth. Es ist ein Erfolg für Login und Weiterleitung mit Code. Und kann dadurch Zugangstoken bekommen.

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); 

} 

Es ergibt sich wie im Bild. result from the code

Aber ich bin sehr neu zu OAuth und kann nicht in der Lage den Zugang zu haben Token nur durch

echo $output['access_token']; 

und PHP auch nach diesem Ausgang sterben und zu meinem vorhandenen Code nicht weitergehen kann. Es ist sehr schwer, das für mich herauszufinden. Ich bin nur ein Anfänger. Bitte hilf mir weiterzumachen. Ich muss access_token für andere verbleibende Prozesse erhalten. Vielen Dank im Voraus.

+0

var_dump ($ output)? – AZinkey

+0

@AZinkey, es gibt "bool (true)" zurück. Wie bitte weiter? –

+0

Ist dieser ganze Code in einer Funktion? Weil es eine Rückkehr gibt, aber ich kann tatsächlich keine Funktionsdefinition sehen. – Twinfriends

Antwort

2

Ihre Ausgabe scheint JSON-formatiert zu sein. Um auf den Wert zuzugreifen, müssen Sie die json_decode() Variable $output vor dem Zugriff auf einen seiner Werte.

Genau wie folgt aus:

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


Edit: Sie brauchen auch curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); hinzufügen, um das tatsächliche Ergebnis von der Webseite Sie versuchen zu bekommen zu kräuseln. Siehe curl_exec() für weitere Informationen:

Returns TRUE auf Erfolg oder FALSCH ein Fehler auftrat. Wenn jedoch die CURLOPT_RETURNTRANSFER Option gesetzt, wird das Ergebnis auf Erfolg zurückkehren, FALSCH ein Fehler auftrat.

+1

Vielen Dank, du hast mich gerettet :) –