0

私はさまざまな記事を読み、fb のログイン ステータスをチェックするサンプルを見てきました。これらの教育リソースから構築された作業ページがあります。

ただし、私の質問は、ユーザーがログインボタンをクリックする必要がないように、ログインプロンプトに直接進むことができるかどうかです。

現在、divにログインボタンがあり、非表示になっています:

<div id="fblogin">
   .......
   class="fb-login-button"
   onlogin="afterFbLogin()"
   data-show-faces="false"
   data-width="200"
   data-max-rows="1"
   data-scope="publish_stream">
   ........
</div>

現在、FB.Init はページの読み込み時に実行され、ログイン ステータスをチェックし、必要に応じて div を表示します。次に、ユーザーはログインボタンをクリックします....次に、ログイン後に共有ボタンをクリックする必要がありますが、これで問題ないと思います。

ただし、フローが少し異なることが私の好みです。

  1. ページの読み込み時に、fb.init にログイン ボタンを表示させたくありません。

  2. 共有ボタンをクリックしたら、隠しフィールドの値を確認します。それらが通常どおりポストにログインしている場合。そうでない場合は、ログイン プロンプトに直接ジャンプします。

#1の場合。非表示の入力タイプの値を設定するために、not_authorized および unknown の FB.getLoginStatus if/then/else ブランチを変更しました。

FB.getLoginStatus(function (response) {

   if (response.status === 'connected') 
   {
      ....code....
   }
   else if (response.status === 'not_authorized') 
   {
      document.getElementById('FbLoginStatus').value = 'not_authorized';
   }
   else 
   {
      document.getElementById('FbLoginStatus').value = 'unknown';
   }
});

#2の場合。fb sdk は以下のようにログイン ボタンを読み込みます (上記の init がログインしていないことを検出した場合) が、これをコーディングすると (javascript でこの要素を見つけてクリックを実行)、Facebook が sdk を変更すると、コードが壊れる可能性があります。

<div tabindex="0" class="pluginFaviconButton pluginFaviconButtonEnabled pluginFaviconButtonMedium" id="u_0_0" role="button">

そのため、ステップ 1 に関する情報や、SDK を使用してステップ 2 を達成する方法についてのアイデアをいただければ幸いです。

ありがとうございました

4

1 に答える 1