问题标签 [facebook-iframe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
facebook - 基于 iframe 的 facebook 应用程序获得了具有较小窗口大小的不需要的滚动条
我有这个 Facebook 应用程序配置文件页面:
这与我基于 iframe 的 Facebook 应用程序 Gem Spinner 相关联:
http://apps.facebook.com/gemspinner/
我所看到的是,根据窗口高度,我的 iframed 内容将以固定高度和滚动条出现,而不是像我一样顺着页面向下流动(必要时从页面底部流出)想。当我缩短窗口时,会出现滚动条;当我使窗口更高时,滚动条消失。我的理解是 Facebook 确定了这个高度并添加了滚动条(但也许我错了)。无论如何,我将不胜感激任何帮助理解这一点并让我的内容在必要时顺着页面流动。
javascript - 如何通过 Javascript 片段显示 iframe?
我在网上看到了一些小部件,它们使用户可以在自己的页面中包含一个简短的 Javascript 片段,执行时会显示一个 Iframe,如下例所示。
我怎么能自己做到这一点 - 在我的服务器上有一个 javascript,当在远程服务器上调用时,它会写出 iframe 或将内容加载到他们的页面中?
facebook-iframe - [facebook app]有什么方法可以从标签中获取 user_id 吗?
我正在尝试从选项卡中获取 user_id。我发现 params["signed_request"] 会给我一些关于 user_id 的信息。我试过了。但是,实际上, params["signed_request"] 给了我错误的值。它返回了 profile_id 而不是 user_id。无论如何我可以从选项卡中获取 user_id 吗?
javascript - 如何使用 display: 'iframe' 而不是 'popup' 来做 FB.ui({ method: 'auth.login' ...)?
我正在为一个简单的 Facebook 应用程序登录。我可以使用 JavaScript SDK 在弹出窗口中使用 FB.login 或以下代码成功显示登录/扩展权限对话框:
问题是......我不太喜欢弹出窗口。从 UI 的角度来看,我认为他们感觉不舒服,就像他们不属于应用程序的其余部分一样。并且让它们通过 JavaScript 显示还需要用户无缘无故地进行一次额外的点击——为了绕过弹出窗口拦截器,用户必须点击登录按钮之类的东西(基本上没有意义,因为到那时应用程序知道它需要显示一个登录按钮,它已经知道用户需要登录并且还可以只显示权限对话框)。
所以,我想,为什么不用 iframe 代替呢?弹出窗口拦截器没有问题,很好地嵌入在页面中,Facebook 似乎很喜欢它们。
在最近的(2.1.2)JavaScript SDK 源代码和 Facebook 开发者论坛上的各种其他帖子中稍作挖掘似乎表明可以将“display:'iframe'”作为选项的一部分传递给 FB.ui。
但是当我尝试它时,虽然 iframe 确实出现了,但我没有得到权限对话框,而是得到:
“发生错误。请稍后再试。”
(注意:稍后再试会产生相同的结果。)
有什么技巧可以让它工作,还是因为某种原因被禁止?
php - Facebook PHP SDK 的 getLoginUrl() 问题
我在使用 getLoginUrl() 登录 PHP SDK 时遇到问题。当用户单击该功能生成的链接时,它不会显示权限对话框,而是显示一个 facebook 徽标,您必须在显示权限对话框之前单击它,请帮助我!
php - Facebook 中的好友列表
我最近开始了我的 Facebook 应用程序。我正在为 PHP 使用新的 facebook api。我需要显示朋友的姓名和头像。此外,我需要选择朋友,我需要向他们发送私人消息。
提前致谢...
php - 旧 facebook iframe 应用程序中的会话不会失效
我面临一个非常奇怪的问题。差不多一年前,我开发了一个 Facebook iframe 应用程序。我正在使用 facebook-php-sdk 来登录用户会话和其他详细信息。我最近做了一些更改并使用了新的基于 facebook OAuth 的 API。但是我现在面临一个问题,当用户从 Facebook 注销时,我的 iframe 应用程序仍然能够访问其 facebook 会话。这个问题只能在 IE 中重现。
我正在使用 CodeIgniter 框架并参考了这篇文章。这是代码片段:
在输出中,即使在用户注销后,我也会得到所有有效的会话值。在尝试了很多事情之后,我创建了一个新的 facebook 应用程序并将 URL 指向我的相同代码。我修改了代码并使用了这个新的 facebook 应用程序提供的 AppId、Appkey 和 AppSecret。现在一切正常。
两个 Facebook 应用程序中的设置完全相同。唯一的变化是 appURL 和键。这是一种奇怪的行为,对我来说不是一个可以接受的解决方案。我希望我的旧 Facebook 应用程序能够与新的 Facebook API 一起使用。为什么会这样?任何想法?
cookies - Facebook 如何在画布页面上为 iFrame 设置跨域 cookie?
我在浏览 Facebook 的有关画布应用程序的文档时遇到了一个示例应用程序:http: //developers.facebook.com/docs/samples/canvas。然而,当我阅读他们的示例时,我对他们在 iframe 应用程序中使用 cookie 感到非常困惑。
一点背景故事...
我已经尝试过将 iframe 用于可嵌入小部件(与 Facebook 无关),并且我发现一些浏览器(Chrome、Safari 等)具有严格的 cookie 策略并且不允许在 iframe 中设置跨域 cookie(Firefox、另一方面,允许 iframe 在 iframe 中设置跨域 cookie)。例如,如果 foo.com 有一个带有src="http://bar.com/widget"
iframe 小部件的 iframe,则将无法为 bar.com 设置任何 cookie,因此在 iframe 中保持状态会遇到问题:bar.com 将解释来自的每个请求(包括 ajax 请求)小部件作为没有建立会话的新请求。我苦苦挣扎,并通过使用 JSONP 和 javascript 为 foo.com 设置 cookie 找到了解决方法......
... 所以?
好吧,我正在查看示例画布 iframe Facebook 应用程序,我注意到他们的应用程序(托管在 runwithfriends.appspot.com 上)能够设置一个 cookie,u
其中包含当前用户的 id 以及 runwithfriends 的一些其他参数。 apppot.com 域。它会随每个请求发送此 cookie……它适用于 Chrome 和 Firefox!怎么回事?Facebook 如何绕过 Chrome 上的跨域 cookie 限制?
(我现在已经知道答案了,但我认为这可能对任何努力找出相同问题的人有所帮助——我将在下面发布答案。)