file_get_contents() を使ってGoogleのAPIからデータを取得出来ない
例えばPHP 5.4.39で以下の様なコードを実行すると
$data = file_get_contents('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=');
var_dump($data);
期待している動作では、以下のjsonが返ってくると思っています。
{
"error": "invalid_token",
"error_description": "Invalid Value"
}
ところが、bool(false)
となりデータが取得出来ません。
ブラウザでアクセスした場合は問題がありません。
試しにUser-Agentを指定した場合でも挙動に変化はありませんでした。
ちなみに
$data = file_get_contents('http://www.yahoo.co.jp/');
とした場合には、問題無くHTMLが取得出来ております。
対応方法としてはcURL
で実装すれば問題無いことはわかっていますが、
なぜfile_get_contents()
で出来ないのか知りたいところです。
恐らくGoogleの場合だけこの問題が発生しております。