Facebook открывается в новом окне вместо всплывающего окна - PullRequest
0 голосов
/ 15 апреля 2011

Я использую C # для получения токенов FB.Поэтому, когда я перенаправляю пользователя по этой ссылке:

https://graph.facebook.com/oauth/authorize?........

, вместо всплывающего окна открывается новая страница (SDK FB javascript, которого я пытаюсь избежать).

В этом запросе есть display = popup, который не работает.Я также пытался 'window.open (...),

, но некоторые браузеры блокируют такие всплывающие окна с помощью блокировщиков ...

Есть ли способ открыть оригинальное всплывающее окно Facebook, а затемвернуться к C # коду, чтобы сделать все волшебство ..?

1 Ответ

0 голосов
/ 16 апреля 2011

Есть отдельная страница для управления входом в Facebook. Откройте то же самое с главной страницы примерно так

window.open ("" ../ Helper / FBLoginMgr.aspx? Login = fb "," _blank "," height = 900, ширина = 800, menubar = 0, изменяемый размер = 1, полосы прокрутки = 1, состояние = 0, Titlebar = 0, панель инструментов = 0" );

в FBLoginMgr.aspx в событии загрузки страницы вы можете сделать это:

        if (Request["login"] != null)
        {
            //First time
            url = "https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope=offline_access,read_stream,user_activities";
            Response.Redirect(string.Format(url, app_id, redirect_url));
        }

        if (Request["code"] != null)
        {
            //Second time
            url = "https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}";

..

Исходный параметр строки запроса login = fb просто указывает логину входа в систему, что он только что был запущен и должен инициировать авторизацию Facebook. Второй запрос ["code"] - это параметр, публикуемый Facebook после авторизации пользователем.

Once the access token is retrieved, set a hidden variable to indicate that the job is done. Then in the aspx page you could have something like this:


    $(document).ready(function () {
        alert("Time to say good bye");
        if (document.getElementById('<%=amidone.ClientID %>').value == "yes") {
            window.parent.opener.doneWithLogin();//Indicate to the parent page
            window.close();
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...