我遇到了很多相同的问题,但没有给出任何具体的答案
我发送邀请给Facebook的朋友说a,b,c,应该发生什么,应该为应用请求显示通知
我已经在PININTEREST的情况下看到了这一点,但是我试图在asp.net中实现这一点。我发现这demo非常接近我想要实现的目标
我到目前为止的代码是:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:fb="https://www.facebook.com/2008/fbml">
<head>
<title>Request Example</title>
</head>
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<p>
<input type="button"
onclick="sendRequestToRecipients(); return false;"
value="Send Request to Users Directly"
/>
<input type="text" value="User ID" name="user_ids" />
</p>
<p>
<input type="button"
onclick="sendRequestViaMultiFriendSelector(); return false;"
value="Send Request to Many Users with MFS"
/>
</p>
<script>
FB.init({
appId : 'XXXXX',
});
function sendRequestToRecipients() {
var user_ids = document.getElementsByName("user_ids")[0].value;
FB.ui({method: 'apprequests',
message: 'XXXXXXX',
to: user_ids,
}, requestCallback);
}
function sendRequestViaMultiFriendSelector() {
FB.ui({method: 'apprequests',
message: 'My Great Request'
}, requestCallback);
}
function requestCallback(response) {
// Handle callback here
}
</script>
</body>
</html>
编辑:
当我发送请求时,用户没有得到它......没有显示错误
答案 0 :(得分:2)
以下两件事可能会导致您的请求无法通过 -
向用户发送请求的应用程序必须在应用程序的设置中指定canvas URL
。当用户对请求(接受它)进行操作时,他/她被重定向到应用程序,特别是画布URL。通过不指定画布URL,您的请求由deemed invalid
由Facebook进行,因为没有将用户重定向到的位置。画布URL不能是apps.facebook.com/namespace
,因为您的应用程序不在Facebook的域中。您必须将网址设置为您的域。您重定向到的页面应该再次将用户重定向回您的应用程序:
if(!strpos($_SERVER['HTTP_REFERER'],"apps.facebook.com")) {
header("location: "._fb_app_path);
exit();
}
当被邀请的用户未在应用程序设置中的相应“角色”组中列出时,沙箱模式中的应用程序。沙盒模式下的应用程序只能由作为该应用程序的开发人员,管理员或测试人员的用户访问。
答案 1 :(得分:1)
我相信正确的方法(至少我们使用的方法)是:
function invoke_app_request(){
var receiverUserIds = FB.ui({
method: 'apprequests',
message: 'MESSAGE',
data: '',
max_recipients: AN_INT //this is optional
},
function(response) {
//whatever you do here
}
);
}
我在某处读取(不要100%),在邀请上显示通知是基于Facebook算法的,并不会在所有应用上显示。它必须对应用活动和历史做些什么。