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への次のステップ?
'$ authorization'変数は関数スコープでアクセス可能ですか?私はそうではないと思う...それを議論として与えるか、それをグローバルにする。 –
...もちろん、 '-X GET'は元の行には使われていないはずです... https://stackoverflow.com/questions/8498371/curl-get-and-x-get/を参照してください。 8502004#8502004 –