1

Я вставляю приложение Facebook https://example.com в холст приложения Facebook, чтобы он был доступен по адресу https://apps.facebook.com/EXAMPLE. Мое приложение отправляет электронные письма с уведомлением, которые содержат ссылки, такие как https://example.com/messages/123, и это должно открыть страницу, встроенную в холст Facebook. Как мне это достичь? Мои текущие мысли:Глубокая ссылка в приложение для холста Facebook

  1. Пользователь открывает https://example.com/messages/123
  2. проверки приложений для signed_request parameter
  3. Применение перенаправляет пользователя на https://apps.facebook.com/EXAMPLE/?requested_page=/messages/123
  4. проверки приложений для requested_page параметра и перенаправляет на страницу
  5. Пользователь видит https://example.com/messages/123 URL и встроенный в холст

Есть ли лучший образец там, чтобы заставить это работать?

Мой последний рабочий раствор (с Рубином на 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 в GET если signed_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, то https://example.com/messages/123 открывается с запросом POST. Вот почему я думал, что использование параметра request_page может быть лучше ... – lacco