Facebook 機能へのカスタム共有を作成していますが、当初考えていたよりも複雑です。
私はFacebookアプリを作成し、それを使用するためにIDを使用する必要がありました。
Facebook でページを共有しようとすると、Facebook にログインし (ログインしていない場合)、プロフィールへのアクセスを要求し (最初の共有でのみ)、共有ダイアログに進みます。
ただし、YouTube や BBC などの他のサイトでは、Facebook で共有するためのアクセスを要求していないことに気付きました。代わりに、共有ダイアログに直接移動します。
これを達成する方法はありますか?
使用するコードは次のとおりです。
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId : '*APP_ID*', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
link : '*LINK*'
});
$('.share-print .facebook > a').click(function(e){
e.preventDefault();
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
facebookSend();
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
} else if (response.status === 'not_authorized') {
// the user is logged in to Facebook,
// but has not authenticated your app
FB.login(function(response) {
if (response.authResponse) {
console.log('Logged in');
facebookSend();
} else {
console.log('Not logged in');
}
});
} else {
// the user isn't logged in to Facebook.
FB.login(function(response) {
if (response.authResponse) {
console.log('Logged in');
facebookSend();
} else {
console.log('Not logged in');
}
});
}
});
});
var facebookSend = function() {
console.log('facebookSend started');
FB.ui({
method: 'feed',
display: 'iframe',
link: '*PAGE_LINK*'
});
}
</script>