Как открыть диалоговое окно входа в Facebook в том же окне вместо всплывающего окна? - PullRequest
6 голосов
/ 20 марта 2012

У меня есть веб-сайт, где пользователи могут войти в систему со своей учетной записью Facebook. Я использую javascript метод FB.login для отображения диалога входа в Facebook. По умолчанию запускается отображение нового всплывающего окна. Многие пользователи запретили всплывающие окна в своем браузере. Как заставить диалог входа в Facebook отображаться в том же окне, где пользователь нажимал кнопку «Вход»? Я вижу, что это работает на этом веб-сайте

Когда пользователь нажимает кнопку «Войти», он перенаправляется на Facebook. После входа в FB он перенаправляется обратно на исходный сайт. Все в одной вкладке браузера.

Ответы [ 4 ]

14 голосов
/ 31 марта 2012

См .: https://developers.facebook.com/docs/reference/dialogs/oauth/

Вместо того, чтобы использовать FB.login (), просто добавьте ссылку на свою страницу следующим образом:

<a href="https://www.facebook.com/dialog/oauth/?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URL&state=YOUR_STATE_VALUE&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES">LOGIN!</a>

Facebook затем авторизует пользователя и перенаправляет его обратно на ваш URL с некоторыми полезностями в строке запроса:

YOUR_REDIRECT_URI?
    error_reason=user_denied
   &error=access_denied
   &error_description=The+user+denied+your+request.
   &state=YOUR_STATE_VALUE
0 голосов
/ 25 апреля 2015

Моя проблема заключалась в том, что у меня был включен модуль " Внешние ссылки ". Он увидел URL-адрес facebook как внешний и быстро добавил target = "_ blank", в результате чего все клики открылись в новом окне.

0 голосов
/ 07 января 2013

Согласно документации Facebook вы можете использовать display=page, которая откроется в том же окне браузера.

0 голосов
/ 20 марта 2012

установить сенсорный дисплей сделать трюк

пример

form method="get" action="https://graph.facebook.com/oauth/authorize" id="openid_form">       
    <input type="hidden" value="" name="client_id" id="client_id"/>
    <input type="hidden" value="touch" name="display" id="display"/>

    <input type="hidden" value="http://www.mobileborg.com/modules/openid/fb_callbackuri.php" name="redirect_uri" id="redirect_uri"/>
    <input type="hidden" value="email,read_stream,user_location,user_hometown,read_friendlists,user_photos,user_videos,publish_stream,offline_access" name="scope" id="scope"/>

    <div style="display:block">
    <input type="hidden" name="oid_name" id="oid_name"/>
    <input type="hidden" size="40" class="openid-identifier" name="openid_identifier" id="openid_identifier"/>
    <input type="submit" style="display:none" value="Login" id="submit-button"/>
    </div>
</form
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...