Facebook应用程序邀请,获取受邀朋友列表

时间:2011-01-10 09:46:54

标签: c# asp.net facebook

我有一个iFrame FB应用程序(托管在mydomain.com上),使用以下内容显示朋友邀请对话:

<body>
<fb:serverFbml>
    <script type="text/fbml">
        <fb:fbml>
            <fb:request-form action="http://mydomain.com/InviteSent.aspx" method="GET" invite="true" type="Game"
                import_external_friends="true" style="background-color:#000"
                content="Hey! Come join me, I'm online now! &lt;fb:req-choice url=&quot;<%=gameUrl%>; label=&quot;Come and play!&quot; /&gt;">
                <fb:multi-friend-selector max="30" cols="3" rows="4" showborder="true" condensed="false" actiontext="Invite your friends to come and play!" />
            </fb:request-form>
        </fb:fbml>
    </script>
</fb:serverFbml>
</body>

在成功邀请朋友之后调用的回调/操作页面肯定被称为好,但我的问题在于检索受邀者的Facebook ID。 FB文档说它们应该以形式发布到'ids'中,所以我的代码背后有这个(C#ASP.net):

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

我还在人们添加应用时设置了授权权限,因此我不认为该问题与此有任何关系。

提前干杯以获得任何帮助。

3 个答案:

答案 0 :(得分:1)

所以从上面的代码中,我猜你正在使用iFrame而不是FBML。如果您的邀请页面后面的下一页是“apps.facebook.com/something”页面,则用户会在登陆目标页面之前被重定向到第三页。因此,当用户到达目标页面时,所有后置变量都将丢失。

解决这个问题的简单方法是将用户重定向到Facebook以外的地方,与受邀朋友一起做任何事情,完成后,将用户重定向回Facebook页面。

我希望有所帮助。 -Roozbeh

答案 1 :(得分:0)

不知道这是多么相关,但Roozbeh15是正确的。我通过PHP使用多朋友选择器。动作='URL'必须在facebook应用程序之外,因此请确保标签中不存在target =“_ top”。

希望这可以帮助其他人检索受邀者的ID。

答案 2 :(得分:0)

我发现了问题,它与在C#中检索ids []值有关。我从未见过将字符串数组作为HTTP POST / GET参数传递。以下是更正后的代码:

if( Request["ids"] != null )
     ((Site)Master).FbInviteSent(Request.QueryString["ids[]"].ToString().Split(','));
Roozbeh,你说;

  

我猜你正在使用iFrame   而不是FBML

实际上你不需要猜测,我在第一篇文章中明确表示过。无论如何,感谢和希望帮助他人。