Why doesn't my Facebook app send Invite requests?

1.2k views Asked by At

I've been working on this for a few days and I can't find what's missing. Does anyone have any advice?

It seems like its missing something but I have no idea what it would be.
I'm not receiving any errors. The share button works (to share to your own wall) but the invites don't appear to do anything at all.

I've replaced my appid with X's.

<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

There are 2 answers

0
Sourav On

Your code is looking fine. There must be a error in your facebook app setting. For invite function you have to give 'Canvas URL' & 'Secure Canvas URL' in your facebook app setting. You can also try with my codes below. This is a very simple code to implement.

<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>

Here you have to write one more javascript code for breaking the iframe. So that the link 'll not open inside the facebook. You also have to write this same js code in your home page or any other page of your website, that you want your app to redirect.

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

For any further doubt feel free to write here.

0
t q On

I had a similar problem and found that you have to click the DONE button. This is a form and the DONE button submits the form.