私はさまざまな記事を読み、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 を表示します。次に、ユーザーはログインボタンをクリックします....次に、ログイン後に共有ボタンをクリックする必要がありますが、これで問題ないと思います。
ただし、フローが少し異なることが私の好みです。
ページの読み込み時に、fb.init にログイン ボタンを表示させたくありません。
共有ボタンをクリックしたら、隠しフィールドの値を確認します。それらが通常どおりポストにログインしている場合。そうでない場合は、ログイン プロンプトに直接ジャンプします。
#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 を達成する方法についてのアイデアをいただければ幸いです。
ありがとうございました