【发布时间】:2012-01-06 22:46:30
【问题描述】:
我将 Facebook 应用程序 https://example.com 嵌入到 Facebook 应用程序画布中,以便它在 https://apps.facebook.com/EXAMPLE 可用。我的应用程序发送通知电子邮件,其中包含https://example.com/messages/123 之类的链接,并且应该打开嵌入到 Facebook 画布中的页面。我如何实现这一目标?我目前的想法:
- 用户打开
https://example.com/messages/123 - 应用程序检查
signed_requestparameter - 应用程序将用户重定向到
https://apps.facebook.com/EXAMPLE/?requested_page=/messages/123 - 应用程序检查
requested_page参数并重定向到此页面 - 用户看到
https://example.com/messages/123URL 并嵌入到画布中
有没有更好的模式来实现这个工作?
我的最终工作解决方案(使用 Ruby on Rails)
- 用户打开
https://example.com/messages/123 -
应用程序在客户端检查应用程序是否嵌入在画布中:
if(window == top){ top.location = "https://apps.facebook.com/#{Settings.facebook.app_id}#{request.fullpath}"; } 用户被重定向到
https://apps.facebook.com/EXAMPLE/messages/123- 如果存在
signed_request,应用程序中间件会将POST转换为GET(代码和想法来自https://github.com/dekart/facebooker2/blob/master/lib/facebooker2/rack/post_canvas.rb) -
应用程序使用 fb_graph gem 解析
signed_requestFbGraph::Auth.new(app_id, app_secret, :signed_request => params[:signed_request])
【问题讨论】:
标签: ruby-on-rails facebook-iframe facebook-apps facebook-canvas