私が最近気付いた API を使用していますが、コードで時々失敗することがあります。file_get_contents で取得すると、「ストリームを開くことができませんでした: HTTP 要求が失敗しました!」というエラーが表示されます。
URLをブラウザに直接差し込んだところ、レスポンスが返ってきたので戸惑いました。ヘッダーをチェックしようと思ったのですが、403 が表示されていることに気付きました。403 でない場合は機能します。403 は、API 認証が失敗した場合にのみ表示されます。返された XML が失敗を示しているかどうかを確認するコードがあります。
本当に問題は、コードが 403 であるかどうかに関係なく、どうすればコードを取り戻すことができるかということです。とにかくSimpleXMLにロードしているので、simplexml_load_fileの使用を開始するつもりでしたが、使用できる/使用すべき別の方法があれば、そのアドバイスも素晴らしいでしょう。
編集:単純なcurlリクエストを試みましたが、間違っていない限り、失敗しました:
$curlObject = curl_init('https://api.eveonline.com/account/Characters.xml.aspx?userID=8166034&characterID=91242713&apiKey=B174C8B7B4364048B8A44B8C494904059D50B942BB4748FD907FF1DBF3F18282');
curl_setopt($curlObject, CURLOPT_RETURNTRANSFER, 1);
$fileContents = curl_exec($curlObject);
curl_close($curlObject);
echo $fileContents;