2014-11-07 5 views
2

Neteller의 나머지 API를 사용하고 있습니다. 나는 인증 키에 대한 올바른 응답을 얻기 위해 고심하고 있었고, 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랬다.Neteller Rest Api

$curl = curl_init(); 

curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_URL, "https://api.neteller.com/v1/oauth2/token?grant_type=client_credentials"); 
curl_setopt($curl, CURLOPT_USERPWD, "clientId:clientSecret"); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type:application/json", "Cache-Control:no-cache")); 
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query("scope: default")); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$serverOutput = curl_exec($curl); 

echo $serverOutput; 

응답이 "invalid_client"입니다. 나는 클라이언트 ID를 확인하고 비밀 그들은 http_build_query() 입력으로 배열을 기대하지만 문자열을 제공하고 있습니다로

감사 캘럼

+0

IP가 차단되었을 수 있습니다. 내 대답을 참조하십시오 : http://stackoverflow.com/a/28449235/2440 – Sire

답변

1

당신은 매개 변수를 보내지 만 문자열하지 않는다 "클라이언트 ID : clientSecret"

을 아마 당신은 의미 : 또한

curl_setopt($curl, CURLOPT_USERPWD, "$clientId:$clientSecret"); 

는 테스트 환경에 대한 예를 들어, 잘못된 URL을 호출 할 수있다 당신이해야 전화 :

curl_setopt($curl, CURLOPT_URL, "https://test.api.neteller.com/v1/oauth2/token?grant_type=client_credentials"); 
0

귀하의 CURLOPT_POSTFIELDS이 유효 정확했다. 해당 라인을 변경

시도 :

curl_setopt($curl, CURLOPT_POSTFIELDS, array("scope"=>"default")); 
+0

안녕하세요, 도와 줘서 고마워! 그에 따라 줄을 변경했지만 여전히 같은 오류가 발생합니다. – Callum

1

나는 당신의 예를 가지고 나를 위해 일하고 :

$username = 'MerchantXYZ'; 
$password = 'B81dff9bb4020a89e8ac44cdfdcecd702151182fdc952272661d290ab2e5849e31bb03deede'; 
$curl = curl_init(); 

curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_URL, "https://api.neteller.com/v1/oauth2/token?grant_type=client_credentials"); 
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password"); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type:application/json", "Cache-Control:no-cache")); 
curl_setopt($curl, CURLOPT_POSTFIELDS, array("scope"=>"default")); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$serverOutput = curl_exec($curl); 

echo $serverOutput; 

을 응답 :

{ "accessToken"을 " B.AQBBBAAAUnzfOwkAAAAAAEEk-BRM0QBTOoehaumwlvdwjqX.EAAQ0NOOTDeY2aMHUCwH4YCugGUX4ro ","tokenType ":"무기명 ","expiresIn ": 300}

감사합니다.

0

client_credentials 흐름을 사용할 때 범위는 적합하지 않습니다. authorization_grant 흐름에만 적용되며 '기본'범위 태그가 지정된 항목에는 회원 인증이 필요하지 않습니다. 'default'가있는 리소스 파일은 기본 client_credentials를 사용하여 반환되며 멤버에게 권한을 요청할 필요가 없습니다.