问题标签 [facebook-canvas]

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.

0 投票
1 回答
392 浏览

facebook-php-sdk - 在画布页面应用程序 php-sdk 中链接到新页面的正确方法

我遇到了几个问题,想知道是否有人有任何见解。我正在使用最新的 php-sdk 我正在开发一个具有许多不同步骤的画布应用程序。这些步骤分布在多个页面上。现在,当我第一次进入应用程序时,一切似乎都运行良好。访问令牌在那里,我可以调用 api 函数。在第二页(链接到同一个 iframe)上,我收到 OAuth 错误。现在,如果我在第二页上使用它:

它返回正确的用户 id,但在尝试使用 api 查询时我仍然遇到错误(在这种情况下特别是 FQL 查询)

现在,请记住这些链接在 iframe 内,所以我假设signed_request 在某个地方丢失了,我知道 facebook 通常通过 POST 发布这个。如果我使用诸如http://apps.facebook.com/myapp/page2.php之类的 URL 将所有链接设置为 target="_parent",那么一切正常。Facebook这次清楚地发布了正确的信息。随后,当我使用仅重定向 iframe 的链接时,它似乎又可以正常工作了(暗示在某处设置了 cookie)。

现在我已经看到其他没有 target="_parent" 的应用程序似乎可以正常工作,只在后续点击时加载 iframe 而不是完整的 facebook 网站。所以我只能假设他们将这些信息存储在某个地方。我尝试使用 httpfox 检查这些应用程序,但看不到任何明显的东西。有没有人有关于多页面应用程序最佳实践的链接?我知道我可以使用完整的 url 和 target="_blank" 来解决这个问题,但我想知道这里发生了什么。我浏览了开发人员文档和画布页面示例,但对我来说没有什么明显的。

任何帮助或信息将不胜感激

非常感谢

0 投票
2 回答
15851 浏览

facebook - Facebook 画布应用程序与 Facebook 移动网络应用程序

我对 facebook 画布应用程序和 facebook 移动 Web 应用程序之间的区别有点困惑。这是我困惑的背景..

我有一个画布应用程序,让我们将其命名空间称为 myfbapp,我基本上可以从https://apps.facebook.com/myfbapp访问它在我登录 FB 后,它会在 Facebook 中打开。我在服务器端实现使用 java (apache / tomcat),为了简单起见,让我们说我的 Web 应用程序中只有一个 index.html 和一个 authenticationfilter.java(它实现了过滤器)。我的 index.html 中没有任何 Facebook 特定的 Javascript API(没有 FB.init() javascript 或类似的东西)或代码。每当用户访问我的画布应用程序时,我首先会收到对我的 Web 应用程序的请求,在该应用程序中我获得了 signed_request 、 oauth_token 、 FB 用户 ID 等,我可以将其用于我的内部身份验证、会话创建等。我对这个画布应用程序和一切正常。请注意,当用户访问此应用程序时,我从浏览器到我的应用程序服务器的请求具有 signed_request 、 user_id 等。

现在我想让这个应用程序也可以在移动设备上使用,我想,哦,我需要做的就是在 Facebook 的移动网络应用程序部分为同一个 myfbapp 添加这个应用程序的移动 URL。我这样做了,当我从我的 android 手机登录到 facebook 时,正如预期的那样,myfbapp 列在应用程序部分下,到目前为止一切都很好。当我点击应用程序时,问题就开始了。我在我的应用服务器上收到请求,但它不包含 signed_request 、 user_id 等。????? 我期待移动应用程序的工作方式与画布应用程序相同,但显然它没有,或者我做错了一些事情。

然后我开始在http://developers.facebook.com/docs/guides/mobile/web/#register阅读更多关于 Facebook 移动应用程序的内容,其中谈到了在 index.html 中添加各种 Facebook Javascript API(我从来没有做过类似的事情在我的画布应用程序中)然后我开始思考,可能是移动网络应用程序更像(或完全)像带有 FB 连接的常规网络应用程序,而不像画布应用程序(意味着它并没有真正在 Facebook 中加载),这是真的?

0 投票
1 回答
1100 浏览

jquery - 在 jQuery 函数中使用 Facebook “FB.Canvas.getPageInfo”

我无法让 Facebook Javascript 函数在某些 jQuery 命令中工作......

这有效:

这不会(返回“未捕获的 ReferenceError:FB 未定义”):

任何人都知道为什么一个 click 方法有效,而 .each() 方法却没有?为什么它返回未定义的 FB?电话在同一个地方。

0 投票
1 回答
313 浏览

javascript - 特定用户的 Facebook 画布 iframe 调整大小问题

我的应用程序http://www.beerwhich.com的一位用户遇到了 iframe 无法重新调整大小的问题。对于我的其他用户和其他机器,我无法重现此问题。

只有用户是谁!遇到此问题时看到此 JavaScript 错误:

这是用户的画布 iframe 剪切内容的屏幕截图:

在此处输入图像描述

有没有人遇到过这个?

0 投票
1 回答
880 浏览

facebook - 为什么 Facebook 画布 signed_request 参数没有访问令牌?

我有一个在 Facebook 的 Canvas 上下文中加载的 Facebook 应用程序。如果我直接点击应用程序 URL(http://apps.facebook.com/myapp/),则 Facebook 生成的签名请求不包含访问令牌......

如果我从书签中点击应用程序 URL,则会成功返回 access_token。

当直接点击应用程序 url 并且 URL 中没有 access_token 时,我不确定如何处理这种情况。我对此有什么误解?

如果用户已经登录 facebook,为什么签名请求中没有访问令牌?

0 投票
2 回答
1260 浏览

paypal - Facebook 上 iFrame 中的 Paypal

这里是双 iframe。在 Facebook Canvas iframe 中,我们正在为我们的 egifting 部分创建另一个到 starbucks.com 的窗口。问题是,以及有什么用处,paypal 按钮将不再脱离 iframe 并在提交并返回 iframe 之前呈现其页面。例如,访问https://apps.facebook.com/starbuckscard/并在访问时选择 paypal 作为选项。这用于工作......关于为什么或什么被破坏/改变的任何想法???非常感谢任何反馈。谢谢你。

0 投票
8 回答
1681 浏览

php - 如果已经授权的用户现在需要更多权限,如何在 canvas 应用程序的 signed_request 中获取 access_token?

让我们为画布应用程序假设以下情况:

i) 第 1 天: - 创建需要 read_stream,publish_stream,offline_access权限的 Facebook 应用程序。当用户第一次访问应用程序时,authorize调用将用户重定向到权限 ALLOW / DENY 屏幕,当用户允许时,它将用户重定向回画布 url。

画布 url 在其请求参数中的签名请求中具有 access_token,然后可用于运行应用程序。

下次访问该应用程序的同一用户不需要权限对话框,因为如果用户过去曾授权该应用程序,则 signed_request 包含 access_token。

代码如下所示:

ii) 第 2 天: - 现在,假设我想在我的列表中再添加一个权限,user_birthday read_stream,publish_stream,offline_access,user_birthday` 现在下面的逻辑会出现问题

由于 API 调用会影响应用程序的性能,如何有效地处理这种额外的权限添加?我不想使用类似的东西:

每次应用程序加载时检查与令牌相关的权限。

更新:

分享一个好方法:将权限集与接收它的 access_token 一起存储。例如。如果当前权限是“basic_details-birthday-publish”(我们称之为 1),将 access_token 和权限集存储为

现在,在您的设置中,每当您需要请求新权限时,创建一个新权限集“basic_details-birthday-publish-checkins”(我们称之为 2),

那么您只需要为拥有 perm_set = 1 的访问令牌的用户而不是已经拥有 perm_set = 2 的用户显示权限对话框,这将消除使用“/me/permissions”检查每个用户的 access_token 的需要api。

0 投票
1 回答
184 浏览

web-hosting - 页面选项卡从某些域加载内容,但不从其他域加载?

我为主页创建了欢迎选项卡。当我将页面选项卡 URL 设置为从http://journalism.unr.edu/facebook/welcome/中提取内容时,该选项卡出现空白。但是,当我将内容的副本上传到位于http://rsj.netii.net/welcome/的免费 000webhost.com 托管帐户并将该地址用作页面标签 URL 时,内容加载得很好。我想知道的是,为什么?

我已经尝试将其他 URL 中的内容拉到我的页面选项卡中:

  • yahoo.com -作品
  • google.com -不起作用
  • unr.edu -作品
  • news.unr.edu -不起作用
  • unr.edu/engineering -不起作用(显示错误消息:“无法显示页面。无法显示您要查找的页面,因为使用了无效的方法(HTTP 动词)尝试访问。”)

有谁知道为什么页面选项卡/iframe 应用程序从某些域加载内容而不是其他域?谁能告诉我如何修复 journalism.unr.edu 网络服务器(我可以访问它,我在新闻学院工作),以便页面标签可以从中加载内容?我们希望能够直接从我们的网站提取内容,而无需将其复制到免费托管帐户。

0 投票
1 回答
707 浏览

php - Facebook 画布通过推荐进行身份验证

我已经被这个问题困扰了一段时间,今天我放弃了,我意识到我真的非常需要帮助,我找不到任何解决类似问题的帖子..所以

我正在尝试创建一个 facebook 应用程序(自 2012 年 1 月 1 日以来 - 如果有任何标准更改,你们可以告诉我),并且我已经正确设置了我的画布 url。

因此,现在当您在 facebook 上访问我的应用程序时,您可以在 apps.facebook.com/canvas-page 中看到我的应用程序。但是我遇到了身份验证问题。

我的应用程序需要基本信息,以及尝试访问它的用户的电子邮件地址。

到目前为止,我已经进行了设置,以便新用户可以看到身份验证对话框,然后访问我的应用程序。在访问我的应用程序时,我希望我的应用程序能够访问上述信息。但是,在我的画布页面上,我对 php 中的代码执行了以下操作,仅此而已,我希望能够查看身份验证对话框中的 facebook 推荐传递给我的应用程序的信息:

然而可悲的是,这给了我空数组,没有别的。

我的 Facebook 应用程序真正需要的只是 access_token 和用户 ID,尽管我很确定我可以通过访问 graph.facebook.com/me?access_token=[从某处提供的访问令牌] 访问当前用户的 ID

所以这是我的第一个问题,第二个问题是当我注销 facebook 并访问 apps.facebook.com/canvas-page 时,我没有被要求登录,为什么会这样?我是否必须使用 JavaScript 重定向到 Facebook 才能登录,然后引用我的应用程序?

目前这些是我的设置(询问更多信息,以便我可以给你)设置>身份验证对话框>经过身份验证的推荐>用户和朋友权限=电子邮件设置>身份验证对话框>经过身份验证的推荐>身份验证令牌参数=?code=

设置 > 高级 > 迁移 = 全部启用

0 投票
2 回答
99 浏览

canvas - 在画布上上传新设计

我主持了我的设计:- http://www.gavinwynne.co.uk/facebook/index.html

并使用该教程在 facebook 中作为 ap 上传。

但是当我去测试时:https ://apps.facebook.com/gavinwynne/ 我在 facebook 中收到一条错误消息:“安全连接失败”,(错误代码:ssl_error_rx_record_too_long)

任何帮助将非常感激

加文