在小部件中使用Facebook API

Using Facebook API in widget

本文关键字:Facebook API 小部      更新时间:2023-09-26

我正在构建一个可以放置在各种网站上的小部件,用户可以通过facebook登录并连接到小部件父网站上的帐户。我本来打算使用Facebook JS SDK来实现这一点,但这个小部件可能会被放置在已经用不同的应用程序ID初始化了FB JS SDK的网站上,如果我以这种方式运行代码,可能会导致命名空间问题。

我目前提出的唯一解决方案是进行服务器端类型授权,并有一个重定向url,该url可返回到托管小部件的当前页面,并使用状态参数提醒骨干路由器用户已登录。

我想到的第一个问题是,在脸书文档网站上,它说

为了安全起见,重定向_uri必须与应用程序设置的应用程序域属性中指定的基域相同,或者是表单的URLhttps://apps.facebook.com/YOUR_APP_NAMESPACE.

登录后,我如何让人们回到它托管的小部件所在的原始页面?有没有更好的方法来解决这个问题?

您可以使用服务器端身份验证并将_uri重定向到您的站点,该站点将重定向到各个站点

redirect_uri=https://www.mydomain.com/?r=https%3A%2F%2Fwww.somesite.me

在服务器上,您将查找查询参数r,并将请求重定向到r值。

你也可以为用户进行自己的身份验证(当他们第一次登录时(,并将facebook的access_token存储在你的数据库上,一旦你的小部件运行(在https下(,并且你在身份验证中识别了用户,你就可以向小部件客户端发送用户的access_taken并使用它。

您甚至可以创建自己的类似Simple FB的ajax库,对于大多数情况,它将是一个简单的get/post/put调用,access_token作为url参数

希望它能帮助