Support Forum Fumiki
translate このフォーラムは日本語でも利用できます。ログインして、言語設定を変更してください。
Forum Replies Created
-
AuthorPosts
-
FumikiKeymaster
wpg_connect
はWordPressアカウントとSNSアカウントを接続したときにのみ発火します。
たとえば、上のコードは「既存のWordPressユーザーがSNSアカウント(e.g. twitter)と連携した」ときにのみ発火します。
説明文が間違えていたので、修正いたします。FumikiKeymaster設定が正しく、なおかつボタンが表示されないとなると、
・なんらかのキャッシュプラグインなどを利用している
・サーバーにキャッシュ機能がある
・ログイン画面をカスタマイズしているなどの可能性が考えられます。
画面を見ながら設定をお手伝いした方がよいと思いますので、もしよろしければZoomなどでそちらの画面を見ながら操作方法を説明した方が良いと思うのですが、いかがでしょうか。もし可能であれば、ミーティングの詳細についてメールでご連絡差し上げます。
FumikiKeymasterご利用ありがとうございます。
基本的にGianismを削除した場合はWordPress上のGianismに関するデータがすべて削除されるため、再設定が必要になります。もう一度Gianismの設定画面を見直してください。「ボタンが表示されない」という状態は、設定されていない状態と同じになりますので。
他のログイン用プラグインを入れました。
また、上記も具体的にどのプラグインが教えていただけますと解決が早くなります。
FumikiKeymaster大変遅くなりました。Gianism YConnect Oldの2.0.1をGumroadにてアップロードしましたので、そちらに修正済みコードをご利用ください。
https://gum.co/hQTlFumikiKeymasterおそらくなんらかのエラーが発生していると思うので、修正いたします。いましばらくお待ちください。
FumikiKeymasterご迷惑をおかけいたします。該当箇所を確認の上、至急修正しますので、いましばらくお待ちください。
8/8には修正完了いたします。FumikiKeymasterありがとうございます。確かに変ですね。Gumroadの挙動だとは思うのですが、のちほど修正いたします。
FumikiKeymaster/** * 翻訳文字列にフィルターを追加 * * @param string $translation 翻訳文 * @param string $text オリジナル(英語)の文字列 * @param string $domain ドメイン名。この場合、wp-gianism */ add_filter( 'gettext', function( $translation, $text, $domain ) { // 該当しなければ元のまま. if ( 'wp-gianism' !== $domain ) { return $translation; } // 該当する文言を変更する switch ( $text ) { case 'Disconnect': return '解除'; case 'Connect': return '連携'; default: return $translation; } }, 10, 3 );
おそらく上記のような感じで文字列を変更することができます。
FumikiKeymasterお返事遅れてすみません。後ほどコードをお送りいたします。
FumikiKeymasterGianismの重複チェックは
– ユーザー名(WordPressのログイン名)
– メールアドレスです。これはWordPressの仕様ですので、Gianismからはどうにもできない問題になっています。
ユーザー名はそれぞれのSNSによって生成方法が違うのですが、twitterならスクリーン名(ex. @takahashifumiki)、GoogleならGmailの@より前に@google を追加、FacebookならFacebook IDとなります。このチェックで重複が見つかると、エラーを返します。全容を説明するのはちょっと大変なのですが、各サービスクラスの user_can_register というメソッドを参照していただければ幸いです。
https://github.com/fumikito/Gianism/tree/master/app/Gianism/Service
あと、そもそものご要望が以下のようになっているのですが……
当方のサイトは、最初にTwitterログインを実装し、今回Googleログインを実装するため、ユーザーに「TwitterログインとGoogleログインの切り替え、相互利用のような」仕組みの提供を予定しております関係から、正確な情報が必要ですので・・・。
Gianism自体は、プロフィール画面から新しいSNS接続を追加できるようになっています。ただし、一度twitterでアカウントを作成した人が、ログインしない状態でgoogleログインを試みた場合、新しいアカウントが作成されます。というのは、twitterやGoogleの情報だけでは同一人物と同定することができないからです。
ちなみにですが、Webサービスで同一人物を同定するというのはなかなか難しく、Webで完結する手法では限界があります。
- 仮想通貨のサイトでは、免許証などの本人確認書類をアップロードする手法が採用されています。
- Gumroadのような支払いを要求するサイトでは、ラインセンスキーのような仕組みが採用されています。
サービスデザインとも密接に関わる話でもありますので、ご参考までに。
FumikiKeymastergianismはいくつか重複チェックがあって、同じメアドで別々のアカウントを登録することができません。
たとえば、Googleとツイッターのユーザー名やアドレスが同じだと、ログインできなくなります。ご自身のアカウントがそこの判定で弾かれているため、登録できないのではないでしょうか?
ちなみに、デフォルトの動作だと「すでに使われているメールアドレスです」というエラーが表示されます。
FumikiKeymasterコード拝見しましたが、最初の
//ログインしたユーザーの情報を調べる $userinfo = wp_get_current_user(); /* echo "userinfo"; var_dump($userinfo);
という部分ですでにユーザー情報を取れていないのでしょうか?
であれば、私がお知らせした上記の部分が動かないはずです。もし最後のコメントの部分(800行目辺り)
if ( empty( $user_shinki ) ) { echo "user_shinkiに値が入っていません<br>"; //Googleログインすると、この分岐に入ってしまう。 }
で動かないのであれば、途中のロジックに問題ありということになります。
上記お知らせいただけますと幸いです。やや長大なロジックなので、時間がかかってしまいました。FumikiKeymasterサイトを拝見しました。
まず、Googleログインで試したところ、ログインはできているようです。
いったん、エラー画面にリダイレクトされましたが、その後トップページに移動したら次のようなメッセージが表示されました。https://www.dropbox.com/s/p1d1pk9i68181b4/front-page.png?dl=0
これはGianismでユーザー登録を行なった時に表示されるメッセージです。また、クッキーにもログイン情報が書き込まれているので、
https://www.dropbox.com/s/8imj9s2zkwgz97q/cookie.png?dl=0
「Googleアカウントでユーザー登録を行う」というところまではできているようです。WordPress管理画面でユーザー一覧を表示すると、該当するユーザーが存在していないでしょうか?
続いて、カスタマイズされた部分についてみてみますので、しばしお待ちください。
FumikiKeymaster「エラー」とおっしゃっている内容が、「Googleでログインできない」のであれば、Gianism本体の問題なのですが、 「worpressの関数のwp_get_current_user( )に、上記のプロセスを経ても何も書き込まれていません(DBのusersのテーブルに追加されない)。」というのを拝見しても、以下のうちどれなのかがわかりません。
そもそもユーザー登録ができていない
ユーザーは登録できるが、カスタマイズ内容が適用されないどちらでしょうか? また……
3) 指定したredirect URLが表示されます。
とありますが、こちらではどのような表示になりますか?
Gianismでは、SNSログインに失敗した場合、エラーメッセージが表示されます。そちらのメッセージによって、Google APIの設定がうまくいっていないのかなどがわかります。まず、そのメッセージは表示されますでしょうか?
されない場合、たとえば真っ白になっている場合、カスタマイズを行なっているプログラムにエラーがある可能性があります。また、リダイレクトフック内でリダイレクトしてしまっている場合も、カスタマイズコードとしては間違っています。
ご要望としては、「特定のルートを辿って登録したユーザーには特定の処理を行いたい」ということだったかと思います。その場合、Redirect URLが適切なフックではないように思いますので、カスタマイズ内容をいただければ、別の方法をご提示させていただきます。
FumikiKeymasterお返事遅れてすみません。
まず確認なのですが、Googleログインはできているのでしょうか? それとも、まったくログインできないのでしょうか?
問題はここからで、「twitterログイン」の場合は、ここから私が書いたプログラム通りの処理が行われるのですが、「Google ログイン」の場合は、私が書いたプログラム通りの処理が行われません。
ここの部分のご説明が少しわからないのですが、「ログインは成功しているけれども、カスタマイズが動かない」ということでしょうか? それとも、ログイン自体ができなくなっているのでしょうか?
きちんと設定されている場合は、以下のリンクの動画のようになります。
https://www.dropbox.com/s/v7zjm2xohckzu1j/google.mov?dl=0
まずは、なにができていないのかと、カスタマイズを施したコードをご提供いただけると、より具体的なアドバイスが可能です。
-
AuthorPosts