我有很多客户想要将facebook连接添加到他们的目标网页(由我管理)。它们太多而且不够精通技术,无法为每个人手动创建广告appid。 因此,我唯一的解决方案是通过我自己的appid将facebook连接添加到我的所有客户网站,但据我所知,Facebook不允许在任何域上使用相同的appid。 我怎么解决这个问题?我找不到任何文件来解决我的问题。有没有人有我的方向?
答案 0 :(得分:2)
应用程序并不意味着在几个不同的域上使用,您将不得不为每个域创建一个新的应用程序,我担心。您可以使用应用程序设置中的不同平台使用不同的域,但只有少数几个没有意义。只需为您的客户创建一些屏幕截图和教程,通常就是这样做的。
顺便说一句,在网站上授权应用程序会很奇怪,同一个应用程序允许您在所有其他客户端网站上获得授权。此外,每个应用程序都有洞察力,因此您的客户可能希望看到自己的见解,而不是所有域的全局见解。答案 1 :(得分:2)
这已经讨论过几次了 - 但是我主要评论过早期的问题,所以让我把整个事情写成一个正确的答案,以供将来参考。
[释义]通过一个应用程序ID登录多客户端Facebook
有没有人有我的方向?
实际上不可能在一个多个不同的域中运行一个简单的应用程序。
作为仅针对少数几个域的解决方法,人们过去常常为不同的平台指定不同的域 - 网站,页面标签或Canvas应用程序,以及Canvas的移动替代品 - 而不实际使用除网站之外的任何平台,这使得应用程序可在多个域上用作网站应用程序。但是,自从Facebook推出了他们的登录/权限审核流程¹之后,您就不能再这样做 - 他们希望您在应用中配置的所有平台上展示实际功能。
如果您愿意仅使用服务器端登录流程,并将用户重定向到一个“主”域(指定为应用程序域),您可以使用一个应用程序在多个域上登录在应用程序设置中)登录,然后从那里返回原始域。
但这有几个缺点:
这不是你所谓的“白标”解决方案。如果您的客户希望它看起来像是通过“他们的”应用登录的用户,那么它应该留在他们的域。关于应用程序名称,登录对话框中显示的应用程序徽标等内容的个别品牌推广也是不可能的。此外,应用归因 - 通过应用分享/发布的内容下显示的链接 - 只会将用户链接回主域,而不会链接到您的客户。
您无法将JS SDK用于客户端API请求,甚至只是将其嵌入到呈现任何需要应用程序ID的FB社交插件中 - SDK会检查它是哪个域“正在运行”,并且不能欺骗接受未在应用设置中指定的域。
可能存在隐私问题。一个过于夸张的例子:仅仅因为我作为应用程序用户决定与您的客户Our-Holy-Mother-of-Christ-Bakery.com
分享我在Facebook上的照片或视频,并不一定意味着我想与您的其他客户分享它们,{{1同样 - 但如果他们为登录目的共享了应用ID,我会自动 。有兴趣写一下隐私政策(如果你使用FB登录功能,这是必须的,FB也会自动检查你的应用是否有一个)那个场景; - )
最后,也是最重要的一点:所有客户都会“坐在同一条船上。”如果他们中的一个,或者他们的网站用户,将通过您的应用ID发布垃圾邮件,以便Facebook阻止它,登录将不再适用于客户网站的所有。如果你只决定然后,为每个客户设置一个单独的应用程序将是更好的方式,他们将无法再识别他们的现有用户,因为用户ID自从引入API v2.0以来应用范围 - 所以如果用户登录到这个新应用程序,该应用程序将看到完全不同的用户ID。 (并且依赖电子邮件地址作为标识符也是有风险的,因为您不会为每个用户从API中获取一个;例如,如果他们使用他们的移动设备注册。)
编辑:另外,app / domain见解,正如luschn在答案中提到的那样。
¹是的,审核流程使为多个客户端设置多个应用程序变得更加费力。但对于执行相同操作的应用程序/以相同方式使用相同权限的应用程序,您可以参考之前成功审核的应用程序ID以加快该过程的速度。另外,截图如何f.e.通过应用程序在时间轴上查看的帖子,以及使用的UI组件,以及您在提交中包含的截屏视频,可能几乎没有改动。
答案 2 :(得分:1)
许多未定义,但我认为作为一名智能开发人员,您需要为使用Facebook连接所需的每个项目创建新的app_ids。只是我的观点。它还允许您监控很多东西。