xREL.v3

Probleme mit OAuth - Thema

Board RSS API Hilfe Kontakt
R3D
R3D User
4. Sep 2019, 22:52 Uhr
Schönen Guten Abend,
brächte mal eure Hilfe da ich einfach nicht weiter kommen :(

Ich habe ein PHP Script womit ich bereits mit file_get_contents und json_decode Informationen via API abrufe.
Ich wollte das jetzt mal erweiter und die Funktionen nutzen wofür man OAuth braucht.

Ich bin soweit das ich den Code zurück erhalte und dann eigentlich das Token bekommen sollte. Aber da kommei ich nicht weiter.
Hier erstmal mein bisheriger Code:
<?php
define("CALLBACK_URL", "XXX");
define("AUTH_URL", "https://api.xrel.to/v2/oauth2/auth");
define("ACCESS_TOKEN_URL", "https://api.xrel.to/v2/oauth2/token");
define("CLIENT_ID", "XXX");
define("CLIENT_SECRET", "XXX");
define("SCOPE", ""); // optional

	$url = AUTH_URL."?"
   ."response_type=code"
   ."&client_id=". urlencode(CLIENT_ID)
   ."&scope=". urlencode(SCOPE)
   ."&redirect_uri=". urlencode(CALLBACK_URL)
	;
if($_GET['code']) 
{ 
	$code = $_GET['code'];
	
	function getToken($code)
	{
		$curl = curl_init();
		$params = array(
		CURLOPT_URL =>  ACCESS_TOKEN_URL."?"
                    ."code=".$code
                    ."&grant_type=client_credentials"
                    ."&client_id=". urlencode(CLIENT_ID)
                    ."&client_secret=". urlencode(SCOPE)
                    ."&redirect_uri=". urlencode(CALLBACK_URL)
					."&scope=",
		CURLOPT_RETURNTRANSFER => true,
		CURLOPT_MAXREDIRS => 10,
		CURLOPT_TIMEOUT => 30,
		CURLOPT_HEADER => false,
		CURLOPT_RETURNTRANSFER => true,
		CURLOPT_FOLLOWLOCATION => true,
		CURLOPT_CUSTOMREQUEST => "POST",
		CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
		CURLOPT_NOBODY => false, 
		CURLOPT_HTTPHEADER => array(
			"cache-control: no-cache",
			"content-type: application/x-www-form-urlencoded",
			"accept: *",
			"accept-encoding: gzip, deflate",
			),
	    
		);
 
		curl_setopt_array($curl, $params);
 
		$response = curl_exec($curl);
                         print_r($response);
		$response = json_decode($response, true);   	
			print_r($response);
		curl_close($curl);
 
	}

getToken($code);	

} else {
header('Location:'.$url); 
}
?>


Wenn ich das so starte bekommen ich :
�e�1�0C���ʌY�{�/!�#�� �)T£�g?:��Tz���=�����mVY��\�R�&�?3d���LŒ����)�=4 �"Ud5|Gq�a@ބ[� �%��=J`�� ]�|�v�� zurück.

Wenn ich
CURLOPT_HTTPHEADER => array(
			"cache-control: no-cache",
			"content-type: application/x-www-form-urlencoded",
			"accept: *",
			"accept-encoding: gzip, deflate",
			),
entferne, bekomme
{ "error_type": "oauth2", "error": "unsupported_grant_type", "error_description": "The authorization grant type is not supported by the authorization server. Check the `grant_type` parameter" }Array ( [error_type] => oauth2 [error] => unsupported_grant_type [error_description] => The authorization grant type is not supported by the authorization server. Check the `grant_type` parameter )
zurück.

Ich bin grade etwas Überfragt. Ich hoffe ihr habt eine Idee.

Grüße R3D

DerGrinch
DerGrinch Grinch
8. Sep 2019, 10:32 Uhr
Wenn du Accept-Encoding: gzip/deflate sendest, dann bekommst du gzip zurück - das ist das "Kauderwelsch" ;) Versuche mal nur diese eine Zeile zu entfernen.

Ich würde dir außerdem empfehlen eine OAuth2-Libary zu nehmen anstatt das Rad neu zu erfinden - diese macht das alles für dich.

R3D
R3D User
10. Sep 2019, 23:18 Uhr
Danke für deine Antwort !

Ich würde dir außerdem empfehlen eine OAuth2-Libary zu nehmen anstatt das Rad neu zu erfinden - diese macht das alles für dich.

Das hatte ich probiert, bin damit aher nicht so klar gekommen :(

Versuche mal nur diese eine Zeile zu entfernen.

dann kommt leider :
{ "error_type": "oauth2", "error": "unsupported_grant_type", "error_description": "The authorization grant type is not supported by the authorization server. Check the `grant_type` parameter" }


© 2004-2019 by xrelease. Alle Rechte vorbehalten.
Version: 3.4-e7f665f0d9a7ead2defc1e4407a9047204964e93 [20181123-284]
Besucher online: 388
Mitglieder online: 28
P2P-Releases
Entertainment
Nach Oben