1
我将Facebook应用程序https://example.com
嵌入到Facebook应用程序画布中,以便它可在https://apps.facebook.com/EXAMPLE
处获得。我的应用程序会发送通知电子邮件,其中包含像https://example.com/messages/123
这样的链接,并且应该打开嵌入到Facebook画布中的页面。我如何实现这一目标?我现在的想法:深入链接到Facebook画布应用程序
- 用户打开了
signed_request
parameter - 应用
https://example.com/messages/123
- 应用检查重定向用户到
https://apps.facebook.com/EXAMPLE/?requested_page=/messages/123
- 应用程序检查
requested_page
参数和重定向到这个页面 - 用户看到
https://example.com/messages/123
网址是嵌入画布
有没有更好的模式,让这个工作?
我的最终工作溶液(用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
- 应用中间件转换成
POST
如果GET
signed_request
存在(代码和想法来自https://github.com/dekart/facebooker2/blob/master/lib/facebooker2/rack/post_canvas.rb借来的) 应用解析
signed_request
与fb_graph宝石FbGraph::Auth.new(app_id, app_secret, :signed_request => params[:signed_request])
当我链接到https://apps.facebook/example/messages/123时,通过POST请求打开https://example.com/messages/123。这就是为什么我认为使用requested_page参数可能会更好的原因... – lacco