Hallo an alle,
ich hätte eine Frage dazu wie man aus einer PHP Funktion mehrere Rückgabewerte bekommt. Ich kriege mit dem folgenden Code eine Antwort im JSON Format. Aus dieser Antwort möchte ich mir den 'access_token' und den 'refresh_token' ausgeben lassen. Einen von beiden kann ich mir jederzeit anzeigen/ausgeben lassen (siehe Ausgabe in grün), aber beide gleichzeitig geht leider nicht.
Ausgabe: string(222) "{"status":0,"body":
{"userid":"25779173","access_token":"d7dc7d1e4ada0a427551b4a01b4e2bbe48c90fbc","refresh_token":"6c7b a10905d72d33b464be67c76197f665c90695","scope":"user.metrics","expires_in":10800,"token_type":"Bearer "}}" [COLOR="Lime"]access_token = d7dc7d1e4ada0a427551b4a01b4e2bbe48c90fbc[/COLOR]
Ich habe mir dafür folgenden Code erstellt:
Hat vielleicht jemand eine Idee wie ich das ganze umsetzen kann, dass in meiner Ausgabe auch noch zusätzlich der refresh_token angegeben wird? Ich habe das ganze auch schon mit arrays probiert jedoch komme ich leider nicht auf die richtige Lösung.
Viele Grüße
ich hätte eine Frage dazu wie man aus einer PHP Funktion mehrere Rückgabewerte bekommt. Ich kriege mit dem folgenden Code eine Antwort im JSON Format. Aus dieser Antwort möchte ich mir den 'access_token' und den 'refresh_token' ausgeben lassen. Einen von beiden kann ich mir jederzeit anzeigen/ausgeben lassen (siehe Ausgabe in grün), aber beide gleichzeitig geht leider nicht.
Ausgabe: string(222) "{"status":0,"body":
{"userid":"25779173","access_token":"d7dc7d1e4ada0a427551b4a01b4e2bbe48c90fbc","refresh_token":"6c7b a10905d72d33b464be67c76197f665c90695","scope":"user.metrics","expires_in":10800,"token_type":"Bearer "}}" [COLOR="Lime"]access_token = d7dc7d1e4ada0a427551b4a01b4e2bbe48c90fbc[/COLOR]
Ich habe mir dafür folgenden Code erstellt:
PHP-Code:
if ($_GET["code"]) {
$access_token = getAccessToken($_GET["code"]);
echo 'access_token = '.$access_token.'<br />';
// $refresh_token = getAccessToken($_GET["code"]);
// echo 'refresh_token = '.$refresh_token.'<br />';
// $resource = getWeight($access_token);
// echo 'Fat free = '.$resource;
}
else {
getAuthorizationCode();
}
function getAuthorizationCode() {
global $authorize_url, $client_id, $callback_uri;
$authorization_redirect_url = $authorize_url . "?response_type=code&client_id=" . $client_id . "&redirect_uri=" . $callback_uri . "&scope=user.metrics&state=test";
header("Location: " . $authorization_redirect_url);
}
function getAccessToken($authorization_code) {
global $token_url, $client_id, $client_secret, $callback_uri;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $token_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'action' => 'requesttoken',
'grant_type' => 'authorization_code',
'client_id' => $client_id,
'client_secret' => $client_secret,
'code' => $authorization_code,
'redirect_uri' => $callback_uri
]));
$rsp = curl_exec($ch);
curl_close($ch);
$response = json_decode($rsp);
var_dump($rsp);
return $response->body->access_token;;
}
Hat vielleicht jemand eine Idee wie ich das ganze umsetzen kann, dass in meiner Ausgabe auch noch zusätzlich der refresh_token angegeben wird? Ich habe das ganze auch schon mit arrays probiert jedoch komme ich leider nicht auf die richtige Lösung.
Viele Grüße
Kommentar