Facebookのapi()
方法を使用すると、許可を得たときに正しく機能しますが、ユーザーが拡張許可を拒否し、phpスクリプトがそのデータを要求すると、エラーが発生し、スクリプトがスタックします。したがって、api()
要求後、それ以上の命令は実行されません。
そのエラーをどのように処理できますか?私が言ったようにスクリプトが動かなくなったので、私はそれらのデータにアクセスしてエラーがあることを見つけることさえできません。
Facebookのapi()
方法を使用すると、許可を得たときに正しく機能しますが、ユーザーが拡張許可を拒否し、phpスクリプトがそのデータを要求すると、エラーが発生し、スクリプトがスタックします。したがって、api()
要求後、それ以上の命令は実行されません。
そのエラーをどのように処理できますか?私が言ったようにスクリプトが動かなくなったので、私はそれらのデータにアクセスしてエラーがあることを見つけることさえできません。
Facebookがエラーコードを返すたびに、FacebookAPIはFacebookApiExceptionを返します。
したがって、api()メソッドを呼び出すときは常にtry-catchブロックを使用してください。
try{
f.api("whatever");
}catch (FacebookApiException $e) {
// most likely that user very recently revoked authorization.
// In any event, we don't have an access token, so say so.
echo "Something went wrong";
}
ユーザーはいつでも権限を取り消すことができるため、以前に権限が付与されていたとしても、それがまだ有効であるとは限りません。
権限のない特定のデータを要求するときにFacebookが固執している場合、唯一の解決策は、コマンドを実行する前に、必要な権限があるかどうかを確認することです。
Facebookで特別な権限を確認する方法を参照してください