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