• Resolved hyo-yo

    (@hyo-yo)


    お世話になっております。Gianismの開発誠にありがとうございます。
    つきましては、1点質問がございます。

    会員制サイトにて、Facebook連携で会員登録を行う場合、
    Facebookアカウントのユーザー名に全角文字列しかない場合、認証に失敗するようです。
    (Facebookに新規ユーザー登録時、「姓名」に全角テキスト、「セイメイ」「ニックネーム」が空になっている場合)

    プラグインのコードを追っていったところ、下記箇所でエラーを投げてしまうようです。

    app/service/facebook.php

    //Check if username exists
    $user_id = wp_create_user(sanitize_user($user_name), wp_generate_password(), $email);
    if( is_wp_error($user_id) ){
          throw new \Exception($this->registration_error_string());
    }

    こちらは対応策などがございましたら、お手数ですがアドバイスを頂けますと幸いです。

    https://wordpress.org/plugins/gianism/

Viewing 8 replies - 1 through 8 (of 8 total)
  • お世話になっております。
    GIANISMのプラグインで質問をしようとしたら同じような質問をされている方がいらっしゃったのでこちらに質問を投稿させていただきます。

    現在GIANISMを使用してソーシャルログインを実装しようとしていますが、Facebookログインのみうまくいきません。
    いろいろ検証した結果、一部のアカウントでログインできることはわかりそのアカウントが英語名でしたのでhyo-yoさんと同じような症状だと考えております。
    お時間あるときでかまいませんのでアドバイスいただけると幸いです
    こちらが製作中のサイトになりますのでご参考ください
    http://link-and-agent.com/

    三田勇人

    こんばんは。お世話になっております。
    上述の件ですが、FACEBOOKのユーザーIDの取得を、メールアドレスを代入することで解決いたしました。

    お世話になりました。

    Thread Starter hyo-yo

    (@hyo-yo)

    >Yuto Mita さん

    >上述の件ですが、FACEBOOKのユーザーIDの取得を、メールアドレスを代入することで解決いたしました。

    上記ですが、フック等で解決されたのでしょうか。
    Gianismの設定画面にあるような「wpg_connect」のタイミングで、ユーザーIDをメールアドレスに変更する等は私も行っているのですが、
    その処理にたどり着く前の #post-5852371 のコードの部分でエラーを出してしまうようです。

    もし可能であれば、対応方法をご連絡頂けますと幸いです。
    ご検討のほど、どうぞよろしくお願い致します。

    gianism app service facebook.php 192行目あたりに、ユーザー登録を扱う処理があると思うのですが、そこを以下のように書き換えたところ、無事動くようになりました。 変更点は、$user_name = $user_idのようなところを、下記のようにすべてfacebookIDで統一いたしました。 その先の処理は、まだしっかりと調べていないので、もしかしたら不具合がでるかもしれません。 宜しくお願い致します。

    //Not found, Create New User
    require_once(ABSPATH . WPINC . ‘/registration.php’);
    //Get Username
    if( isset($profile[‘username’]) && !username_exists($profile[‘username’])){
    //if set, use username. but this is optional setting.
    $user_name = ‘fb-‘.$facebook_id;
    }elseif( isset($profile[‘name’]) && ($safe_name = sanitize_user($profile[‘name’])) && !username_exists($safe_name) ){
    //If name is alpabetical, use it.
    $user_name = ‘fb-‘.$facebook_id;
    }else{
    //There is no available string for login name, so use Facebook id for login.
    $user_name = ‘fb-‘.$facebook_id;
    }

    Thread Starter hyo-yo

    (@hyo-yo)

    > uto Mita さん

    ご連絡誠に有り難うございます。
    やはり、プラグインの上記部分を書き換えるしかないですよね・・・
    可能であればフックで解決したかったのですが、現時点では難しいようですね。

    Plugin Author Takahashi Fumiki

    (@takahashi_fumiki)

    拝見しました。
    一応、名前が使えないときは ‘fb-‘.$facebook_id ということで、Facebook IDとfb-を組み合せたものになるようにしていたのでうすが、処理が漏れてしまっているようです。
    次のリリースで修正します。

    Thread Starter hyo-yo

    (@hyo-yo)

    > Takahashi Fumiki さん

    修正をご対応頂けるとのこと、誠にありがとうございます。
    引き続きご対応の程、どうぞよろしくお願い致します。

    Thread Starter hyo-yo

    (@hyo-yo)

    全角ユーザーも登録できることを確認致しました。
    ご対応誠にありがとうございました!

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Facebookで全角ユーザー名のみの場合登録エラー’ is closed to new replies.