2017-07-25 9 views
1

を返さない:このAPIののOAuth2 PHPデータは、私はいくつかのトラブルからアクセストークンを取得してい

api.hybrid.ru/token

ドキュメントはロシア語(Link)であり、それは基本的に言う:

Headers 
POST /token HTTP/1.1 
Host: api.hybrid.ru 
Content-Type: application/x-www-form-urlencoded 

Data: 
grant_type=client_credentials&client_id={client_id}&client_secret={client_secret} 

私は有効なclient_idとclient_secretを持っています(hybrid.ru techsが教えてくれました)、エラーメッセージも返されません。 CLIENT_IDまたはclient_secret APIに多少の誤差がある場合に

私は思っ
<?php 

error_reporting(E_ALL); 
ini_set('display_errors',1); 

$ch = curl_init(); 

$url = "https://www.api.hybrid.ru/token"; 


$post_data = array(
'grant_type'=> 'client_credentials', 
'client_id'=>'********', 
'client_secret'=>'********' 
); 


curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"POST /token HTTP/1.1", 
'Content-Type: application/x-www-form-urlencoded', 
"host: api.hybrid.ru" 
)); 

curl_setopt($ch, CURLOPT_URL, $url); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 

curl_setopt($ch,CURLOPT_POSTFIELDS, $post_data); 

curl_setopt($ch, CURLOPT_POSTREDIR, 3); 

$output = curl_exec($ch); 

curl_close($ch); 

print_r($output); 

?> 

は、少なくともいくつかのエラーメッセージを返す必要があります: 私はCURLを使用し、私のコードは、そこに行きます。

さらにもう1つ質問しますが、client_secretに文字「=」を含めることはできますか?彼らは私にclient_secretに後ろの "="記号を付けました。とにかく、文字の有無にかかわらず、データは返されません。

助けが必要ですか?ローナ・ミッチェルの答えを以下の後

UPDATE 1

、私はこのメッセージを取得する:それらの後

Array ( 
[url] => https://api.hybrid.ru/Views/Errors/DefaultError.cshtml?aspxerrorpath=/ 
[content_type] => text/html; charset=utf-8 [http_code] => 500 [header_size] => 483 
[request_size] => 440 
[filetime] => -1 
[ssl_verify_result] => 0 
[redirect_count] => 1 
[total_time] => 3.853833 
[namelookup_time] => 0.972059 
[connect_time] => 1.178887 
[pretransfer_time] => 1.406303 
[size_upload] => 479 
[size_download] => 1763 
[speed_download] => 457 
[speed_upload] => 124 
[download_content_length] => 1763 
[upload_content_length] => 479 
[starttransfer_time] => 1.612792 [redirect_time] => 2.028607 
[redirect_url] => 
[primary_ip] => 212.8.236.42 
[certinfo] => Array () 
[primary_port] => 443 
[local_ip] => 162.214.7.244 
[local_port] => 46088 
) 

HTTP/1.1 100 Continue HTTP/1.1 
302 Found 
Date: Wed, 26 Jul 2017 16:47:47 GMT 
Content-Length: 166 
Connection: keep-alive 
Location: /Views/Errors/DefaultError.cshtml?aspxerrorpath=/ 
Server: Hybrid Web Server HTTP/1.1 100 Continue HTTP/1.1 500 Internal Server       
Error 
Date: Wed, 26 Jul 2017 16:47:49 GMT 
Content-Type: text/html; charset=utf-8 
Content-Length: 1763 
Connection: keep-alive 
Cache-Control: private 
X-AspNet-Version: 4.0.30319 
Server: Hybrid Web Server 

任意のアイデア?

+0

しようとしていた

? – Dimi

+0

それは話を聞く初めてですtelnet、私はLornaの答えに従った、おそらく私はこのハイブリッドについて電子メールに行くだろう、そして、彼らが問題が私の側にあると言うならあなたの方法を試みるだろうが、アイデアを持たないだろうtelnetが私に別の答えを与える方法は、 – temo

答えて

1

curl_error($ch)は有用な情報を返しますか?

CURLOPT_HTTPHEADERが設定されている場所を確認し、コンテンツタイプ以外のすべてを削除します(他の部分はヘッダーではありません。ドキュメントの例は、送信時の要求の表示方法を示しています)。

http://requestb.inのようなツールを使用して、コードの送信内容を確認することもできます。そこに行って、新しいビンを作成し、コード内のURLとして使用します。あなたのコードが何を送信しているのかを調べ、それが正しいことを確認することができます。それが右に見える場合は、あなたがと統合しようとしているAPIを使用すると、POSTデータを送信するためにTelnetを使用して、任意の応答を取得した場合に見バグ:(

+0

"ホスト 'www.api.hybrid.ru'を解決できませんでした。 から「www」を削除した後、$ url =" https: // www .api.hybrid.ru/token "、 「 '/'アプリケーションのサーバーエラー」と表示されます。 APIにバグがありますか? – temo

+0

APIの問題のように聞こえるが、間違いなくバグかもしれない –

+0

実際にはAPIに問題があった。 – temo

関連する問題