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

相關問題