Facebook C#SDK,iFrame应用程序中的AJAX

时间:2010-11-15 06:53:08

标签: c# .net ajax facebook facebook-c#-sdk

我正在使用Facebook C#SDK为Facebook制作iFrame应用程序。我知道用户正在进行身份验证,我可以使用Graph API获取用户名(FaceBookApp.Api(“/ userid”))

我现在的问题是,当我对页面进行AJAX调用时,我无法再使用Api。 userid为0.打开FireBug时,请求的响应为“Unsupported get request”。我怀疑这与面部有关,AJAX请求正在为调用使用不同的会话,并且该会话未经过身份验证。我想知道是否有办法解决这个问题?我知道我可以创建我要求重新验证的页面,但这意味着我必须为每个看起来效率不高的请求提供reauth。我正在使用Jquery发出请求。

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:2)

问题是,如果在iframe中使用ajax调用,则必须将客户端的会话信息发送到服务器。否则,FacebookApp无法知道当前用户是谁。您可以通过以下两种方式之一解决此问题。

  1. 您可以将整个signed_request值发送到服务器。
  2. 您可以使用Javascript SDK获取用户访问令牌,并将该值仅发送到服务器。
  3. 我认为第一种方式是最好的。您需要做的就是更改您的ajax网址以包含签名请求,如下所示:

      

    var ajaxUrl ='/ services / example?signed_request =< %= Request.Querystring ["signed_request“]%>';

    然后使用新网址正常拨打电话。之后,FacebookApp类将从ajax请求中读取会话,您将会很高兴。