我正在尝试使用Facebook JS SDK构建“此活动的RSVP”动作。
我们所有的网站都在多个子域(event1.example.com
,event2.example.com
)上运行,我正在尝试设置一个允许用户回复的Facebook应用。
理想情况下,我希望能够在Valid OAuth redirect URIs
设置中指定通配符子域,但Facebook似乎不允许这样做。
之前的StackOverflow回答说,要么只是放入顶级域名,要么将该字段留空就可以了(for example),但我总是得到This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings
错误。
令人沮丧的是,我们不应该需要任何类型的重定向回调到服务器。我只想要一个短命令牌来发布事件RSVP,这应该只是客户端。
有没有办法实现这个目标?
我能想到的选择......
每个子域名一个应用程序我们有100个子域名,因此为每个子域名创建Facebook应用程序不起作用(加上这是一个手动过程)
将所有子域列为重定向URI ,它在重定向URI的数量上显示Facebook has a limit,此外,这也是一个手动过程 - 没有用于添加这些
的API端点 通过JS将重定向URI设置为我们的根域,然后忽略回调 - 这似乎很有希望,但使用FB.login
param调用redirect_uri
会出错: When using FB.ui, you should not specify a redirect_uri.
有没有办法在没有FB.login
的情况下执行此操作?
以某种方式让Facebook知道我们根本不关心那些重定向 - 是否有其他方式来请求权限并在不需要oauth重定向的情况下进行JS API调用?
提前感谢任何见解...
答案 0 :(得分:0)
我不认为有一种方法可以在多个域上通过Facebook登录,但是有一个适当的解决方法可以在多个域上实现登录,它被称为单点登录:
请参阅:
答案 1 :(得分:0)
我们可以使用一个特定的子域/主域本身来处理facebook身份验证
每次都会传递包含state
的{{1}},以便无需添加子域来重定向uri列表