0

私のアプリケーションでは、さまざまなケースをすべて処理する必要があります。標準ケースでは問題ありませんが、エッジ ケースでは問題があります。たとえば、

  • アプリのシークレットが間違って入力されました
  • ユーザーがアプリの認証を取り消しました

これは私のコードです

//I have already checked that the app id is valid

require AI1EC_LIB_PATH . '/facebook-php-sdk/src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
    'appId'  => $plugin_settings['facebook-app-id'],
    'secret' => $plugin_settings['facebook-app-secret'],
));
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

if ( $user ) {
    try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api( '/me' );
    } catch ( FacebookApiException $e ) {
        error_log( json_encode( $e->getResult() ) );
        $user = NULL;
    }
}

// Login or logout url will be needed depending on current user state.
if ( $user ) {
    $logout_url = $facebook->getLogoutUrl();
    echo "OK!";
} else {
    $params = array(
        'scope' => 'user_events, friends_events',
    );
    $login_url = $facebook->getLoginUrl( $params );
    $args = array(
        'login_url'  => $login_url,
    );
    $ai1ec_view_helper->display_admin( 'plugins/facebook/user_login.php', $args );
}

特定のエラーの処理をどこに置くべきですか?「問題が発生しました。アプリのシークレットが正しく入力されているかどうかを確認してください」や「アプリの認証が解除されました」などの素敵なメッセージをユーザーに表示したいと思います。y がそれを行うべきは catch() ブロックにあるのかもしれませんが、チェックするコードがわかりません。

誰でも助けることができますか?

4

0 に答える 0