0

我正在将 ASP.net C# 用于与 Facebook API 集成的 Web 应用程序。我的应用程序将允许用户创建一个组来共享代码。我需要使用 Facebook API 让用户邀请 Facebook 的朋友加入他在我的应用程序中的群组。这是分配的要求,因此请不要建议创建仅在我的网站上注册的用户组。

到目前为止,我使用以下代码列出了所有朋友的请求对话框(MultiFriendSelector()):

<p> Click <span id="span-link" onclick="sendRequestViaMultiFriendSelector(); return     false;">here</span> to add friends from your Facebook account to your group! </p>         

但是我被困在如何获取这些受邀用户的 id 和详细信息,以便我可以将它们保存在我的数据库中并允许他们访问他们被邀请的组。请问我该怎么做?我似乎找不到与此相关的任何内容。

顺便说一句,我知道有一个相关的问题给出了这个代码:

if( Request["ids"] != null )
   ((Site)Master).FbInviteSent(Request.QueryString.GetValues("ids"));

但我不知道Master是什么,我无法让它工作。

谢谢你的帮助 :)

4

2 回答 2

1

通过查看另一个答案中的代码,看起来 facebook API 将使用 ids 的查询字符串参数回调到您的页面。

即它会用这样的网址调用你的网站。
http://www.yoursitesulr.com/mypage.aspx?ids=13,22,44

然后,您可以使用从查询字符串中提取 id

string myIds = Request.QueryString["ids"];

然后,您可以将它们转换为数组。

var ids = myIds.Split(',');

如果您使用的是 MVC,那么您可以利用模型绑定器,只需在您的视图模型中放置一个 int 数组,它就会自动绑定。

下面的答案解决了您的具体问题,所以我会以此为起点。

Facebook:使用多个朋友选择器和 JS SDK 发布到多个朋友的墙

如果您对上述解决方案有任何疑问,请告诉我。

问候

史蒂夫

于 2013-04-22T11:27:55.640 回答
1

每当您调用请求对话框时,您都可以传递一个回调函数:

function sendRequestViaMultiFriendSelector() {
  FB.ui({method: 'apprequests',
    message: 'My Great Request'
  }, requestCallback);
}

requestCallback 将收到响应,此响应返回被邀请用户的 facebook id

function requestCallback(response){
  for (var i = 0; i < response.to.length; i++) {
   fb_id = response.to[i];
   // Do something with fb_id.
  }
}
于 2013-04-22T11:31:35.080 回答