1

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

  1. 用户打开https://example.com/messages/123
  2. 应用程序检查signed_request参数
  3. 应用程序将用户重定向到https://apps.facebook.com/EXAMPLE/?requested_page=/messages/123
  4. 应用程序检查requested_page参数并重定向到此页面
  5. 用户看到https://example.com/messages/123URL 并嵌入到画布中

有没有更好的模式来实现这个工作?

我的最终工作解决方案(使用 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. 应用程序中间件转换POSTGETif is present(从https://github.com/dekart/facebooker2/blob/master/lib/facebooker2/rack/post_canvas.rbsigned_request借用的代码和想法)
  5. 应用程序signed_request使用 fb_graph gem解析

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

1 回答 1

0

我只是更新链接以指向http://apps.facebook/example/messages/123开始。

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

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

于 2011-11-27T01:18:05.963 回答