当前位置: 首页 > 面试题库 >

iFrame应用中的Facebook C#SDK,AJAX

尤俊誉
2023-03-14
问题内容

我正在使用Facebook C#SDK为Facebook开发iFrame应用程序。我认为该用户正在认证,并且可以使用Graph
API(FaceBookApp.Api(“ / userid”))获取其用户名。

我现在的问题是,当我对页面进行AJAX调用时,我将无法再使用Api。用户ID为0。打开FireBug时,请求的响应为“不支持的get请求”。我怀疑这与AJAX请求正在使用其他会话进行呼叫且该会话未通过身份验证有关。我想知道是否有什么办法可以解决这个问题?我知道我可以对请求的页面进行重新认证,但这意味着我必须对似乎效率不高的每个请求都进行重新认证。我正在使用Jquery发出请求。

任何帮助深表感谢。

谢谢


问题答案:

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

  1. 您可以将整个signed_request值发送到服务器。
  2. 您可以使用Javascript SDK来获取用户访问令牌,并将该值仅发送到服务器。

我认为第一种方法是最好的。您需要做的就是更改您的ajax网址,使其包含已签名的请求,如下所示:

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

然后,使用新的网址像平常一样拨打电话即可。之后,FacebookApp类将从ajax请求读取会话,您将很高兴。



 类似资料:
  • 我有一个html页面,在一个android应用程序中使用。从这个页面,我需要张贴数据到服务器和响应是一个附件,需要下载。我为此目的使用了隐藏的iframe黑客。但不幸的是它的失败。谁能解释一下根本原因吗?

  • 1. 集成sdk 1.1 安装sdk npm i zg-sdk-quickapp 1.2 引用sdk 在src目录下app.ux引入sdk文件 import zhuge from 'zg-sdk-quickapp' zhuge.load('AppKey', { // load配置参数,具体见下方 }) export default trackApp({ ... }) 1.3 增加代

  • 问题内容: 我有一个简单的页面,其中包含一些iframe部分(以显示RSS链接)。如何将相同的CSS格式从首页应用到iframe中显示的页面? 问题答案: 编辑:除非设置了适当的CORS标头,否则这不能跨域工作。 这里有两件事:iframe块的样式和嵌入在iframe中的页面的样式。您可以按通常方式设置iframe块的样式: 必须通过将iframe中嵌入的页面样式包含在子页面中来进行设置: 或者可

  • 问题内容: 我正在尝试使用Selenium,Python和BS4在iframe中访问iframe 在返回的文本中,似乎还有两个iframe。我将如何访问那些?我尝试上面的代码没有成功。 问题答案: 将返回到文档顶部。发生的事情是您切换到第一个,然后又切换回文档的顶部,然后尝试查找第二个。硒找不到第二个,因为它在第一个之内。 如果删除第二个,则应该没问题:

  • 问题内容: 我经常看到使用iframe的网站,这些iframe包含外部网站,顶部框架包含用户的JavaScript功能。 例如,用户分析软件,Digg bar等。 任何类似的实验技巧?=)会很棒的 问题答案: 不,不是从iframe 外部 。一个是自己的世界。如果域等匹配,则Javascript可以进出通讯,并且可以(如果愿意)将CSS注入子框架。 如果其中包含来自其他域的内容,那么您几乎无能为力

  • 问题内容: 我正在尝试使用Selenium,Python和BS4在iframe中访问iframe 在返回的文本中,似乎还有两个iframe。我将如何访问这些?我尝试上面的代码没有成功。 问题答案: 将返回到文档顶部。发生的事情是,您切换到第一个,切换回文档的顶部,然后尝试查找第二个。硒找不到第二个,因为它在第一个之内。 如果删除第二个,则应该没问题: