グラフ API を使用して、ユーザーのアルバムのリストを取得しています。ユーザーがサインアウトしたり、パスワードを変更したり、エラー状態になったりした場合、応答がありませんが、エラーコードが返されるはずです。ブラウザで開いたときにグラフ API の URL にエラーが表示されますが、file_get_contents() を使用するとエラー 400 が発生します。curl を使用すると、空の応答が返されます。エラーが発生したときとその理由を知る方法はありますか?
3 に答える
ブラウザで開いたときにグラフ API の URL にエラーが表示されますが、file_get_contents() を使用するとエラー 400 が発生します。
これは、Facebook が Oauth エラーで送信する HTTP ステータス コードです。これは間違いではありません。
ただしfile_get_contents
、デフォルトでは、エラーを通知する HTTP ステータス コードの場合、実際の HTTP レスポンス本文の内容は表示
されません…</p>
…これは、公式の PHP SDK を使用する必要があるもう 1 つの理由です。公式の PHP SDK を使用する必要があります。PHP SDK は、これらすべてを適切に処理し、何が起きているかを正確に示す例外を表示します。
そうしてください。
(それでも、file_get_contents
最初に対応するオプションを使用して「ストリーム コンテキスト」を設定すると、レスポンスのボディ コンテンツを取得できます。ただし、PHP SDK を使用する方がはるかに簡単なので、もう一度: 実行してください。)
file_get_contents の代わりに curl を使用したところ、問題は解決しました。
file_get_contents() は、http の代わりに https を入力したとき、またはそれらのいずれかを入力するのを忘れた場合に何度もエラーを出しました。
コンテンツを取得する URL は、次のように先頭に「http」を付ける必要があります。
file_get_contents(" http://www.mysite.com ");
これで解決すれば?