Facebook JavaScript SDK を使用しています。
Web ページの Facebook 共有ボタンをクリックすると、Facebook ログイン ウィンドウが表示されます。ユーザー名とパスワードを入力してログインし、メッセージ
「ユーザーがログインをキャンセルしたか、完全に承認しませんでした」
現れた。正常にログインできましたが、何らかの理由で要求されたアクセス許可が承認されていません。
Facebookの共有ボタンをもう一度クリックすると、メッセージ
「ユーザーは Facebook にログインしていますが、アプリには接続されていません」
現れた。
アプリ ID とアプリ シークレットを使用して Facebook アプリが正常に作成されました。また、[App Domains] の下にドメイン名を入力し、[Website with Facebook Login] の下に自分のサイトを入力しました。
何がうまくいかなかったのかわかりません。
どんな助けでも大歓迎です!
これは Facebook のログイン ウィンドウですが、ユーザーに許可を求めることはありません。
コードは次のとおりです。
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'myAppId',
channelUrl : '/www.mydomain.com/channel.html',
oauth : true,
cookie : true,
status : false
});
facebookLogin();
};
function facebookLogin() {
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome!');
} else {
console.log('User cancelled login or not fully authorized');
}
},
{scope:'email,publish_actions'});
}
function checkLoginStatus() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
// Do something
} else if (response.status === 'not_authorized') {
// Do something
console.log("User is logged in to Facebook, but not connected to app");
} else {
// Do something else
}
});
}
(function(d, s, id) {
var js, fjs = d.getElementByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
.
.
.
</body>
ボタンのコードは次のとおりです。
$('#fb-button').click(function() {
checkLoginStatus();
}