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

Javascript 为什么';我的Facebook应用程序不发送邀请请求吗?,javascript,html,facebook,facebook-javascript-sdk,facebook-invite,Javascript,Html,Facebook,Facebook Javascript Sdk,Facebook Invite,这件事我已经做了几天了,我找不到遗漏的东西。有人有什么建议吗 它似乎缺少了什么,但我不知道它会是什么。 我没有收到任何错误。“共享”按钮起作用(共享到您自己的墙上),但邀请看起来根本没有任何作用 我已经用X替换了我的appid <html> <head> <title>App Name</title> </head> <body> <div id="fb-root"></div>

这件事我已经做了几天了,我找不到遗漏的东西。有人有什么建议吗

它似乎缺少了什么,但我不知道它会是什么。
我没有收到任何错误。“共享”按钮起作用(共享到您自己的墙上),但邀请看起来根本没有任何作用

我已经用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>

应用程序名称
变量发布={
方法:“stream.publish”,
显示:'弹出',//强制弹出模式
附件:{
名称:“连接”,
标题:“Facebook连接JavaScript SDK”,
说明:(
“一个小型JavaScript库,允许您利用”+
“Facebook的力量,带来了用户的身份,”+
“社交图和网站的分布能力。”
),
href:'http://app-address.com/'
}
};
函数publish1(){
FB.ui(publish);/,Log.info.bind('stream.publish callback');
}
发送给许多人
点击
window.fbAsyninit=函数(){
log('initingfacebook…');
FB.init({
appId:'xxxxxxxxxxxxx',
状态:正确,
无摩擦要求:正确,
曲奇:是的,
xfbml:对
});
console.log(“…完成”);
};
(功能(){
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({
方法:“apprequests”,
消息:“这是对应用程序名invite的测试。”
},请求回调);
函数requestCallback(响应)
{
if(响应和响应请求\u id){
//在这里,请求已经发送,facebook会给你所有请求的ID
//控制台日志(响应);
location.href='home';
}否则{
//没有请求发送,你可以做你想做的事(比如…什么都不做,呆在页面上)。
}
}
}

您的代码看起来不错。你的facebook应用程序设置中一定有错误。对于邀请功能,您必须在facebook应用程序设置中提供“画布URL”和“安全画布URL”。 你也可以试试下面我的代码。这是一个非常简单的代码来实现

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

FB.init({
appId:'APP_ID',
曲奇:是的,
状态:正确,
xfbml:对
});
函数FacebookInviteFriends()
{
FB.ui({
方法:“apprequests”,
消息:“您的消息日志”
});
}
//HTML代码
在这里,您必须再编写一个javascript代码来破坏iframe。这样链接就不会在facebook内部打开。您还必须在您的主页或网站的任何其他页面中编写相同的js代码,以使您的应用程序重定向

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

if(顶部位置!=自身位置)
{
top.location=self.location
}

如有任何疑问,请在此处自由书写。

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

是否为应用程序设置了画布url?此错误应发生在所有应用程序上。请不要再创建另一个
生日
应用程序。它不是生日应用程序,但感谢您的帮助。我没有画布url。该页面不在facebook上。我们只是使用它们进行登录和身份验证。这有什么区别吗@利克斯。是的。当人们点击一个请求时,他们会被发送到应用程序画布url。如果你没有,通知会被取消,因为Facebook可以马上告诉你没有画布url。即使您不使用它,您也应该在那里放置一个持有者,并可能从该URL重定向到您的站点(或应用程序所在的任何位置)。