У меня есть приложение facebook iframe как вкладка страницы на странице поклонника. Приложение собирает записи для конкурса. В нем перечислены записи, а также есть страница для показа одной записи. Я хочу иметь возможность ссылаться на одностраничную страницу – у меня это работает, используя параметр app_data
, но только если пользователь ранее использовал приложение. Это не работает для нового пользователя, которому необходимо добавить приложение (войти в систему).
До сих пор мне удалось частично работать, связываясь с
http://facebook.com/pages/<myPageName>/<myPageId>?sk=app_<myAppID>&app_data=<myUrlEncodedJsonData>
Параметр app_data
передается в iframe моего приложения по facebook, и я могу обработать его на стороне сервера, чтобы перенаправить пользователя на соответствующую подстраницу. Кажется, что все работает хорошо … но только если я вошел в приложение, прежде чем пытаться получить доступ к глубоко связанному контенту.
Если я попытаюсь глубоко подключиться к одностраничной странице и еще не установить приложение (сценарий: я друг участника, и мне было предложено проголосовать за его запись, я не использовал приложение еще), затем, после входа в систему, я на странице индекса моего приложения, и это не то, что мне нужно.
Я использую PHP facebook SDK для получения loginUrl следующим образом:
$loginUrl = $facebook->getLoginUrl(array('canvas' => 1,'fbconnect' => 0, 'scope' => 'email,publish_stream,offline_access,user_likes,publish_actions', 'next' => $canvasPage));
где $canvasPage
– полный URL-адрес приложения на моем сервере, $loginURL
– это то место, где я перенаправляю пользователя, если обнаруживаю, что он не зарегистрирован в моем приложении.
Что я должен изменить, чтобы иметь возможность направлять новых пользователей прямо к определенному контенту (подстранице) в моем приложении?
Решаемые. Я использовал сеанс для хранения, где пользователь хочет получить исходное, а затем перенаправить его на страницу входа в систему, а когда он / она вернется, сеанс будет прочитан, чтобы перенаправить пользователя в конечный пункт назначения.