2012-02-27 87 views
1

我遇到了很多问题,但没有给出任何具体的答案向Facebook上的用户发送通知以获取应用程序请求?

我发送邀请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> 

编辑:enter image description here

当我发送请求的用户没有得到它...未显示错误或者

+0

你的代码有什么问题?您没有列出任何错误或问题。你在'requestCallback'函数的'response'参数中得到了什么? – Lix 2012-02-27 15:24:43

+0

我对请求对话很新,我需要在requestCallback函数中指定什么? – vini 2012-02-27 15:27:23

+0

到目前为止 - 我问你是如何意识到有一个问题 - 你没有指定这个。用户没有收到请求吗?你是否收到一些JavaScript错误? – Lix 2012-02-27 15:28:10

回答

2

这里有两件事情,可能会导致你的请求不经过 -

  • 缺失或不正确的画布URL
  • 应用程序在沙盒模式

将请求发送到应用程序用户必须在应用程序的设置中指定 a canvas URL。当用户处理请求(接受它)时,他/她被重定向到应用程序,特别是画布URL。通过不指定画布网址,您的请求是Facebook的deemed invalid,因为没有将用户重定向到哪里。画布网址不能为apps.facebook.com/namespace,因为您的应用程序不在Facebook的域名上。您必须将网址设置为您的域名为。您重定向到的页面应该在用户再次重定向回您的应用程序:

if(!strpos($_SERVER['HTTP_REFERER'],"apps.facebook.com")) { 
    header("location: "._fb_app_path); 
    exit(); 
} 

沙盒模式的应用程序时,被邀请的用户在应用程序设置相应的“角色”组未列出。沙盒模式下的应用程序只能访问该应用程序的开发人员,管理员或测试人员。

+0

我添加了它保持的画布网址,当我运行我的代码时检查编辑 – vini 2012-02-27 16:58:43

+0

'http://apps.facebook.com/iamamazing/'这是我的画布网址 – vini 2012-02-27 17:04:55

+0

@vini - 我更新了我的文章以包含更多信息.. – Lix 2012-02-27 17:22:48

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算法,并没有显示在所有的应用程序。它必须对应用程序的活动和历史做些事情。

+1

发送的任何邀请都会创建一个红色通知气泡,但应用生成的请求除外。 – Lix 2012-02-27 15:34:24

相关问题