2013-05-07 1 views
0

У меня очень трудное время с использованием Facebook Tab/App, что я пытаюсь создать с очень специфическими потребностями:на одной странице «Воротами» Facebook Tab/App с разрешениями

  1. Это должно быть содержащихся в одном файле - index.php (вспомогательные файлы, такие как .js, .css и другие .php-файлы, как есть, являются точными).
  2. Он должен иметь копии страницы, которая требует разрешения на «выбирают» в (т.е. нажав кнопку «Go»)
  3. Это должно быть сделано в PHP SDK

Теперь, я использовал Javascript SDK для этого раньше и его «довольно легко». Я пытаюсь сделать это в PHP и бросать в мою систему некоторые гаечные ключи.

Это моя основная установка:

В index.php, я включаю global.php в верхней части файла, который обрабатывает весь facebook SDK включает в себя и:

$facebook = new Facebook(array(
    'appId' => APP_ID, 
    'secret' => APP_SECRET, 
)); 

Я тогда «затвор», что загружается на основании подписанного запроса ($signed_request = $facebook->getSignedRequest();signed_request['app_data']). Если для подписанного запроса «app_data» установлено значение «flash_load», проверяются разрешения. Если разрешения проходят, загружается флеш-файл, в противном случае запрашиваются разрешения. Если app_data! = 'Flash_load' загружается всплывающая страница.

общий поток страницы:

Page load 

    If(app_data == flash_load) 

     check permissions 

     if permissions 

      render flash 

     else 

      request permissions 

    else 

     render splash page 

страница выплеска имеет кнопку с надписью "Go", которая связывает непосредственно на странице вкладку (то есть: http://www.facebook.com/ {{{PAGE_NAME}}} v = приложение _ {{ {APP_ID}}} & app_data = flash_load). У меня также есть тот же самый URL установлен как веб-сайт с URL Facebook Войти SITE @https://developers.facebook.com/apps/ {{{APP_ID}}}

Все это работает отлично и хорошо с явным исключением этого потока:

Если пользователь не имеет права:

  1. они перейдите на вкладку
  2. они продиктованы заставке
  3. они нажмите кнопку "Go", который перенаправляет на http://www.facebook.com/ {{{PAGE_NAME}}} V = app _ {{{APP_ID}}} & App_Data = flash_load
  4. страница (index.php) перезагружает с подписанным запросом App_Data = flash_load
  5. Права предоставляются
  6. index.php перезагружается на страницу SPLASH.

Как сделать так, чтобы для ИСХОДНОГО перезагрузки ПОСЛЕ разрешений ПРЕДОСТАВЛЕНИЯ загружается файл флэш, а не всплеск?

Я попытался добавить state к redirect_uri, но не смогли захватить значение с помощью $_GET, $_REQUEST или $facebook->getSignedRequest();

Я также попытался использовать $_SERVER, чтобы захватить URL и разобрать, что, но что не ссылается на URL-адрес Facebook.

Боковое примечание: каждая последующая загрузка после первой перезагрузки после предоставления разрешений должна загружать всплеск как обычно.

ответ

0

Как вы просите разрешения, вы можете использовать наличие user_id или oauth_token, чтобы убедиться, что пользователь уже разрешил ваше приложение, и вы можете загрузить файл флеш вместо экрана всплеска.

Документация о полях signed_request описывает так же, как

некоторых полей и ценностей, user_id и oauth_token, например, будут передаваться только тогда, когда пользователь имеет logged into приложение.

Смежные вопросы