我认为您是指第三方网站上的 Facebook“点赞”按钮?
这将直接调用 Facebook 服务,使用它们的 API,并在 iframe 中加载 FB 接口的“实例”。
--
CORS
您主要关注的是如何管理服务的CORS 元素
CORS(跨源资源共享) 允许外部服务器通过 Ajax 访问您服务器上的资源。这可能是该过程中最重要的元素,因为它允许 FB / Twitter 之类的公司为其按钮加载数字“一般”数据。
这部分是您实现功能的地方,也是他推荐*时原始答案所指的内容
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 来获取所需的通用数据
它将从 Facebook 服务中检索“喜欢”的数量。这将使用 JS 完成,并且需要如上所述的 CORS 设置,因为它将使用 XHR 来检索所需的数据。
这就是为什么您至少需要一个页面 ID,有时还需要某种更深入的身份验证(应用 ID、小部件 ID、oAuth)才能在您的网站上获取这些小部件之一。原因是为了让按钮检索所需的数据,服务器需要知道数据的用途
你可以这样做:
#javascript xhr
(function($){
//call Ajax to get numeric data for button
});
--
身份验证
如果你想知道用户是否“喜欢”了一个页面,你最好同时使用 FB 和 Twitter 的方法(我认为)并使用 iframe 来加载按钮
这听起来可能有点老套,但事实是,托管在 FB 服务上的 iframe 将使您能够在服务本身上验证会话,从而提供知道按钮是否具有是否被“激活”。
要直接回答您的问题,该按钮不会保持会话;它将在按钮的调用方式范围内(它在服务器上吗?)