2017-06-02 21 views
0

PHP経由でhttps://api.thetvdb.com/swagger apiを使用しようとしています。"curl -X GET --header"をphp curl not workingで送信します。

私は正常に次のメソッドを使用してAPIからJWTトークンを取得するために管理してきました:

function tvdb_post ($url, $userinfo) { 
    $ch = curl_init($url); 
    $payload = json_encode($userinfo); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    $return = json_decode($result, true); 

    return $return; 
} 

$userinfo = array (
    'username' => 'dstealth', 
    'userkey' => '***{redacted}***', 
    'apikey' => '***{redacted}***' 
); 

$token = tvdb_post('https://api.thetvdb.com/login', $userinfo); 

私は、トークンをコピーして、トークンを提出するAPIをWebページ上でそれを提出します。それは私に確認メッセージを与える。

問題は次のステップから発生します。前の手順をAPI Webサイトのページで行い、API Webページの次のステップを実行すると、うまく動作します。しかし、次のステップをPHPに変換しようとすると、「Not Authorized」メッセージが表示されます。 APIのWebページ上の

次のステップは次のとおりです。

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer <token>' 'https://api.thetvdb.com/refresh_token' 
// returns a response code 200 and refreshes the token successfully. 

PHPで私の次のステップは次のようになります。

$authorization = "Authorization: Bearer ***{redacted}*** "; 

function tvdb_api ($url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $authorization)); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $json = curl_exec($ch); 
    curl_close($ch); 
    $array = json_decode($json, true); 

    return $array; 
} 

$refresh = tvdb_api('https://api.thetvdb.com/refresh_token'); 
// This returns a "Not Authorized" error. 

誰もが私が変換の間に間違ってやっているものを私に教えてくださいすることができAPIのWebページからPHPへの次のステップ?

+0

'$ authorization'変数は関数スコープでアクセス可能ですか?私はそうではないと思う...それを議論として与えるか、それをグローバルにする。 –

+0

...もちろん、 '-X GET'は元の行には使われていないはずです... https://stackoverflow.com/questions/8498371/curl-get-and-x-get/を参照してください。 8502004#8502004 –

答えて

0

$認可変数は関数の外にあり、関数はその値を使用しようとしていました。関数内で移動すると、関数は期待通りに機能しました。投稿して申し訳ありません!

関連する問題