1

我将Facebook应用程序https://example.com嵌入到Facebook应用程序画布中,以便它可在https://apps.facebook.com/EXAMPLE处获得。我的应用程序会发送通知电子邮件,其中包含像https://example.com/messages/123这样的链接,并且应该打开嵌入到Facebook画布中的页面。我如何实现这一目标?我现在的想法:深入链接到Facebook画布应用程序

  1. 用户打开了signed_request parameter
  2. 应用https://example.com/messages/123
  3. 应用检查重定向用户到https://apps.facebook.com/EXAMPLE/?requested_page=/messages/123
  4. 应用程序检查requested_page参数和重定向到这个页面
  5. 用户看到https://example.com/messages/123网址是嵌入画布

有没有更好的模式,让这个工作?

我的最终工作溶液(用Ruby on Rails的)

  1. 用户打开关于客户端https://example.com/messages/123
  2. 应用检查是否应用被嵌入在画布:

    if(window == top){ 
        top.location = "https://apps.facebook.com/#{Settings.facebook.app_id}#{request.fullpath}"; 
    } 
    
  3. 用户被重定向到https://apps.facebook.com/EXAMPLE/messages/123

  4. 应用中间件转换成POST如果GETsigned_request存在(代码和想法来自https://github.com/dekart/facebooker2/blob/master/lib/facebooker2/rack/post_canvas.rb借来的)
  5. 应用解析signed_request与fb_graph宝石

    FbGraph::Auth.new(app_id, app_secret, :signed_request => params[:signed_request]) 
    

回答

0

我刚刚更新的链接指向http://apps.facebook/example/messages/123已关闭。

当您检查身份验证时,只需在授权/登录后将重定向设置到同一页面即可。

无缘无故地将用户重定向到多个页面并不是一个好习惯。

+0

当我链接到https://apps.facebook/example/messages/123时,通过POST请求打开https://example.com/messages/123。这就是为什么我认为使用requested_pa​​ge参数可能会更好的原因... – lacco

相关问题