为什么我的Facebook应用程序不发送邀请请求?

时间:2013-12-11 23:12:27

标签: javascript html facebook facebook-javascript-sdk facebook-invite

我已经在这几天工作了,我找不到遗漏的东西。有没有人有任何建议?

似乎它遗漏了一些东西,但我不知道它会是什么 我没有收到任何错误。分享按钮有效(分享到你自己的墙上),但邀请似乎根本没有做任何事情。

我用X替换了我的appid。

<html>
<head>
    <title>App Name</title>
</head>
<body>
    <div id="fb-root"></div>
    <script>
        var publish = {
            method: 'stream.publish',
            display: 'popup', // force popup mode
            attachment: {
                name: 'Connect',
                caption: 'The Facebook Connect JavaScript SDK',
                description: (
                    'A small JavaScript library that allows you to harness ' +
                    'the power of Facebook, bringing the user\'s identity, ' +
                     'social graph and distribution power to your site.'
                ),
                href: 'http://app-address.com/'
            }
        };
        function publish1() {
            FB.ui(publish);//, Log.info.bind('stream.publish callback'));
        }
    </script>
    <button class="btn" id="send-to-many">Send to Many</button>

    <button onclick="publish1()">Click</button>
</body>

<script>
    window.fbAsyncInit = function() {
        console.log('Initing facebook...');
        FB.init({
            appId: 'xxxxxxxxxxxxxxx', 
            status: true, 
            frictionlessRequests: true,
            cookie: true,
            xfbml: true
        });
        console.log('... done');
    };
    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
    }());

    document.getElementById('send-to-many').onclick = function() {
        FB.ui({
            method: 'apprequests',
            message: 'This is a test of the App-Name invite.'
            }, requestCallback);
            function requestCallback(response)
{
if(response && response.request_ids) {
     // Here, requests have been sent, facebook gives you the ids of all requests
     //console.log(response);
     location.href='home';
} else {
     // No requests sent, you can do what you want (like...nothing, and stay on the page).
}
}
}
</script>
</html>

2 个答案:

答案 0 :(得分:0)

您的代码看起来很好。您的Facebook应用设置中必定存在错误。对于邀请功能,您必须提供“Canvas URL”&amp;您的Facebook应用设置中的“安全画布网址”。 您也可以尝试使用下面的代码。这是一个非常简单的代码来实现。

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId:'APP_ID',
cookie:true,
status:true,
xfbml:true
});

function FacebookInviteFriends()
{
FB.ui({
method: 'apprequests',
message: 'Your Message diaolog'
});
}
</script>


//HTML Code
<div id="fb-root"></div>
<a href='#' onclick="FacebookInviteFriends();"> 
Facebook Invite Friends Link
</a>

在这里,您必须再编写一个用于打破iframe的JavaScript代码。因此,链接'不会在Facebook内打开。您还必须在主页或网站的任何其他页面中编写相同的js代码,以便您的应用重定向。

<script type='text/javascript'>
if (top.location!= self.location)
{
top.location = self.location
}
</script>

如有任何疑问,请随时写在这里。

答案 1 :(得分:0)

我遇到了类似问题,发现您必须点击DONE按钮。这是一个表单,DONE按钮提交表单。