我正在创建社交媒体管理网络应用。这个webapp将由我们的客户在自己的网站上使用(阅读,拥有域名)。 webapp连接到我们拥有的Facebook应用程序,以允许他们管理页面。
我正在使用"网站"该应用程序的平台。在开发过程中,我有#34;站点URL"设置为我的localhost网址,以及" App Domains"设置为localhost。这很好。
但是我现在意识到这个应用程序并不总是从localhost运行。它将从许多不同的域运行。我已经阅读了很多关于如何不再这样做的帖子,或者至少通过添加多个平台最多是5个域。
那我该怎么做呢?我是否需要在每个客户/网站的个人资料上创建一个应用程序?我是否必须在每个客户的Facebook帐户上创建一个应用程序,并将其应用程序ID链接到我们的webapp?
答案 0 :(得分:0)
对此的解决方案并不是那么糟糕。
由于AccessTokens是可移植的,因此您可以在单个域上生成它们,然后使用它们从任何页面访问API。
为此,我在自己的服务器(而非客户服务器)上设置了一个页面,其域名在我的Apps Domains属性中。这个页面只有facebook JS SDK,以及一些代码来处理是否显示登录或注销按钮。我将其作为iFrame嵌入到我的webapp中(可以从任何URL运行)。我用
FB.Event.subscribe('auth.authResponseChange' function {});
查找状态更改,然后使用JS postMessage方法将结果发送给iFrame的父级,然后iFrame将其发送到服务器。然后可以在任何地方使用此AccessToken。