Я вставляю приложение Facebook https://example.com
в холст приложения Facebook, чтобы он был доступен по адресу https://apps.facebook.com/EXAMPLE
. Мое приложение отправляет электронные письма с уведомлением, которые содержат ссылки, такие как https://example.com/messages/123
, и это должно открыть страницу, встроенную в холст Facebook. Как мне это достичь? Мои текущие мысли:Глубокая ссылка в приложение для холста Facebook
- Пользователь открывает
https://example.com/messages/123
- проверки приложений для
signed_request
parameter - Применение перенаправляет пользователя на
https://apps.facebook.com/EXAMPLE/?requested_page=/messages/123
- проверки приложений для
requested_page
параметра и перенаправляет на страницу - Пользователь видит
https://example.com/messages/123
URL и встроенный в холст
Есть ли лучший образец там, чтобы заставить это работать?
Мой последний рабочий раствор (с Рубином на 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, то https://example.com/messages/123 открывается с запросом POST. Вот почему я думал, что использование параметра request_page может быть лучше ... – lacco