我想创建类似于faebook"类似"的应用程序。在Facebook上,一旦你登录Facebook,所有的网站都有"喜欢"插件可以访问Facebook登录并获取必要的数据(例如,您喜欢或不喜欢或有多少朋友/人喜欢该页面或其他什么)。但是,为了维护会话,facebook使用cookie在浏览器上存储会话。 如果您关闭/删除cookie,它将无法正常工作。
是否有任何技术或方法可以在服务器上维护会话或不依赖于cookie?
感谢。
答案 0 :(得分:0)
我认为你的意思是Facebook"喜欢"第三方网站上的按钮?
这将使用他们的API直接调用Facebook服务,并加载"实例" iframe中的FB接口。
-
<强> CORS 强>
您正在关注的主要问题是如何管理服务的CORS元素
CORS(跨域资源共享)允许外部服务器通过Ajax访问服务器上的资源。这可能是该过程中最重要的元素,因为它允许FB / Twitter之类的人加载数字&#34; general&#34;按钮的数据。
这部分是您实现功能的地方,也是他在推荐*
时提到的原始答案
Rails gem called RACK-CORS处理Rails / Rack应用程序的CORS策略:
#config/application.rb
use Rack::Cors do
allow do
origins '*'
resource '/buttons/*', :headers => :any, :methods => :get
end
end
当您使用下面的JS时,您基本上能够向domain.com/buttons/:button_id
发送Ajax请求以获取数据的pingback(喜欢的数量等)
-
<强> JS 强>
按钮本身将填充JS,并可能调用JSON或普通HTTP来获取所需的通用数据
它将检索&#34;喜欢&#34;来自Facebook服务。这将使用JS完成,并将需要如上所述的CORS设置,因为它将使用XHR来检索所需的数据。
这就是为什么您需要至少拥有一个页面ID,有时需要某种更深层次的身份验证(应用程序ID,小部件ID,oAuth)来获取您网站上的其中一个小部件。原因是,为了使按钮检索所需数据,服务器将需要知道数据的用途
你可以这样做:
#javascript xhr
(function($){
//call Ajax to get numeric data for button
});
-
<强>验证强>
如果你想知道用户是否喜欢&#34;一个页面,你最好使用FB&amp; amp;的方法。 Twitter(我认为)并使用iframe
加载按钮
这可能听起来很糟糕,但事实是,在FB服务上托管的iframe
将使您能够对服务本身的会话进行身份验证,从而能够知道是否按钮已被激活&#34;或不。
要直接回答您的问题,该按钮将无法维持会话;它将在按钮调用方式的范围内(是否在服务器上?)