после того, как страница входа в Facebook не перезагружается, т.е. - PullRequest
0 голосов
/ 10 марта 2012

На моей странице aspx у меня есть кнопка входа в Facebook в модальном всплывающем окне. Когда пользователь нажимает на это и входит в систему, я фиксирую данные для входа, используя Facebook C # SDK. перед входом в систему я показываю вход в систему div и после входа в систему показывать пользователя div.

Отлично работает со всеми браузерами, кроме IE. Где после входа в систему модальное всплывающее окно закрывается, но страница не перезагружается. локально работает нормально даже в IE. но в приложении facebook после входа в систему пользователь div не отображается. Пожалуйста, помогите.

aspx code below
<div class="fb-login-button" onlogin="javascript:Reload();" scope="email,publish_stream,manage_pages,offline_access" onclick="document.getElementById('divWait').style.display = 'block';"  >Login with Facebook</div>

Мой код JavaScript ниже.

    <script >       (function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];

          if (d.getElementById(id)) return;
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=221678077921242"; 
          fjs.parentNode.insertBefore(js, fjs);
       } (document, 'script', 'facebook-jssdk'));</script>
<script>
   window.fbAsyncInit = function() {
      FB.init({
      appId: '311257055585019', 
         channelUrl: '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
         status: true, // check login status
         cookie: true, // enable cookies to allow the server to access the session
         xfbml: true,  // parse XFBML
         oauth: true
      });

   };

   (function(d) {
      var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
      js = d.createElement('script'); js.id = id; js.async = true;
      js.src = "//connect.facebook.net/en_US/all.js";
      d.getElementsByTagName('head')[0].appendChild(js);
   } (document));
</script>

<script type="text/javascript">
   function Reload() {
      window.location.href = "urlred.aspx?page=delmode.aspx&fb=1";
   }

</script>

мой код asp.net ниже

FacebookWebContext wc = new FacebookWebContext(new FBSettings() { AppId = ConfigurationSettings.AppSettings["LogApi"].ToString(), AppSecret = ConfigurationSettings.AppSettings["LogSecret"].ToString() });
          Facebook.Web.FacebookWebClient cl = new Facebook.Web.FacebookWebClient(wc);
          if ((wc.Session != null && wc.Session.AccessToken != null && iLogin == 1))
          {Facebook.JsonObject fbUser = (Facebook.JsonObject)cl.Get("/me");
             if (fbUser.Count > 0)
             {
                //do other work
             }

        }     

1 Ответ

1 голос
/ 21 марта 2012

Вы должны установить URL канала на фактическое значение.Вы не можете использовать значение по умолчанию:

channelUrl: '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File

Добавьте файл channel.html на свой сайт и установите его соответствующим образом.Вы можете узнать больше о файле канала в документации разработчика Facebook.

...