Facebook发送UI呈现空窗口

时间:2014-07-10 18:09:06

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-php-sdk

我正要测试一些东西,所以我制作了2个带有2个链接的按钮: 1.)使用facebook sharer.php功能,工作正常 2.)使用我从FB开发者主页获取的URL重定向来触发发送ui:

http://www.facebook.com/dialog/send?app_id=123050457758183&link=http://www.nytimes.com/2011/06/15/arts/people-argue-just-to-win-scholars-assert.html&redirect_uri=https://www.bancsabadell.com/cs/Satellite/SabAtl/

我用自己的app替换了app id和两个链接。我的应用程序设置为指向链接,因为我知道我之前运行过一次,这就是问题所在。

现在正如所说的分享按钮工作得很好但是当我点击另一个按钮时我只看到一个白色的屏幕。 URL位于地址栏中。 Firebug没有显示控制台错误和空头部和身体标签。

有什么建议吗?

谢谢,

格尔德

更新:我还实现了常规的javascript ui.send方法。窗口弹出。我与facebook有联系,因为ssl印章显示但是再次只有白色。

1 个答案:

答案 0 :(得分:0)

就URL而言,URL很好,只是时间问题,Facebook才允许共享之前未编入索引的URL。当我将链接更改为我的主域而不是子文件夹时,它可以工作。

就JS SDK而言,我忘了检查用户是否登录,所以这就是它的工作原理:

<div id="fb-root"></div>    
    <script>      
    window.fbAsyncInit = function() {        
        FB.init({          
            appId      : 'YourId',          
            xfbml      : true,          
            version    : 'v2.0'        
        });      
    };

    (function(d, s, id){         
        var js, fjs = d.getElementsByTagName(s)[0];         
        if (d.getElementById(id)) {return;}         
        js = d.createElement(s); js.id = id;         
        js.src = "//connect.facebook.net/en_US/sdk.js";         
        fjs.parentNode.insertBefore(js, fjs);       
    }(document, 'script', 'facebook-jssdk'));    
    </script>   

  <button onclick="sendFb()">Recommend JS</button>  

<script type="text/javascript">     
    function sendFb(){
        FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
                FB.ui({
                  method: 'send',
                  link: 'yourlink.com',
                });
            }
            else {
                FB.login(function(response) {
                    if (response.authResponse) {
                        FB.ui({
                          method: 'send',
                          link: 'yourlink.com',
                        });
                    }
                    else
                        alert('Not Authenticated!');
                });
            }
        });
    }
</script>
</body>
</html>