1

ユーザーがフィードを共有できる次の機能があります。以下のコードは、ほとんどのブラウザーでポップアップ ブロッカーによってブロックされます。この問題に関するスタック オーバーフローに関する投稿をいくつか見ました。私が試したonclickの使用をお勧めします。Facebook SDK が失敗すると、ポップアップ ブロックが表示されないことに気付きました。攻撃の最良の計画は何ですか. 私はphpを使用しています。

<a class="facebook" href="#" onclick='loadSdk(); return false;'></a>

<script>

function loadSdk(){

    window.fbAsyncInit = function() {
        FB.init({
            appId      : '123', // App ID
            channelUrl : 'http://mysite.com/facebook', // Channel File
            //   status     : true, // check login status
            cookie     : true, // enable cookies to allow the server to access the session
            xfbml      : true  // parse XFBML

        });

        if (typeof facebookInit == 'function') {
            facebookInit();
        }

        FB.api('/me', function(user) {
            if (user) {
                var image = document.getElementById('image');
                image.src = 'https://graph.facebook.com/' + user.id + '/picture';
                var name = document.getElementById('name');
                name.innerHTML = user.name
            }
        });
    };
    // Load the SDK Asynchronously
    (function(d){
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);

    }(document));
}

 function facebookInit(){

        var publish = {
            method: 'feed',
            message: '',
            name: '',
            caption: '',
            description: (

                ),
            link: 'http://mysite.com/',
            picture: 'http://mysite.com/fblogo.png',
            actions: [
                { name: '123', link: 'http://www.mysite.com/' }
            ],
            user_message_prompt: 'Share your thoughts'
        };

        FB.ui(publish, null);

}

</script>
4

1 に答える 1