取れないAPIレスポンスデータ

夕方頃にディレクトリ型検索エンジンdtnを見てみたところ、APIで取得したデータを元に表示されているコンテンツ部分が表示されていないことに気が付きました。

yahoo_api_down.png
電力消費グラフやYahooニュースが表示されておりません

上の画像がその時のイメージですが、APIのレスポンスが取れていないため、人気検索キーワードやヤフーニュース、電力使用状況のグラフも表示がされておりません。何やら素っ気ない感じです。

APIの更新情報をチェック

dtn.jpで使っている人気ランキングやニュースの情報は、Yahoo! JAPAN WebサービスのAPIからデータを取得していますが、Yahooのサービスサイトや公式ブログやtwitterを見ても特にそんな情報はでておりません。

API以外の原因を調査すると

APIの使用回数制限に引っかかったかとも思ったのですが、この過疎サイトでそんなことは考えにくいです。そこで、サーバログを見てみたところ大量のPHP Warningがでておりました。どうやらfile_get_contentsがひたすらエラーを吐いているようです。

PHP Warning:  file_get_contents(http://*****) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /*****.php on line *****

深夜のサーバーメンテナンス

この当日は大風邪をひいてしまっていたため、実はあまり正確には覚えていないのですが、確か昨夜までは問題なく動いてた記憶があります。

運営会社のメンテナンス情報を見てみると、どうやらサーバーで緊急メンテをやっていたようですが違うサーバー番号のようです。

とはいえ、番号が近かったので何か一緒にこっそりやっていたのかとは疑い調べたところ、php.iniに変更点がありました。それが、php.iniのallow_url_fopenの設定でした。見るとoffになっています。

allow_url_fopen Off

おわりに

このOffをOnに戻したところ、無事問題解決となりました。勝手に大事なパラメータをいじるサーバ屋があってよいものやら。

yahoo_api_on.png
電力消費グラフやYahooニュースも表示されています

YahooのAPIがないと、本当に素っ気ないサイトになってしまいます。これを見ると末永くAPIを提供してくれることを祈るばかりです。