Я знаю, что аналогичный вопрос задавали несколько раз, но все же я не могу заставить его работать. Я хочу войти на мой сайт с помощью новейшего фейсбука C# SDK и прочитать зарегистрированное имя пользователя и имя пользователя.Facebook C# sdk login in asp.net 4.0 website
Вот моя конфигурация web.config facebook:
<configSections>
<section type="Facebook.FacebookConfigurationSection, Facebook"
name="facebookSettings" allowLocation="true" allowDefinition="Everywhere" />
</configSections>
<facebookSettings appId = "{appId}" appSecret = "{appSecret}"/>
Вот мой facebook SDK и на стороне клиента код:
Your facebook name is :<asp:Label ID="Label1" runat="server" Text="Not authenticated."></asp:Label>
<div id="fb-root">
</div>
<fb:login-button id="fblogin" onlogin="window.open('http://www.filmania.pl/Default.aspx?code=1', '_self')">
</fb:login-button>
<fb:prompt-permission perms="email"></fb:prompt-permission>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: 'applicationId',
cookie: true,
xfbml: true,
oauth: true
});
function facebooklogin() {
FB.login(function (response) {
if (response.authResponse) {
// user authorized
//window.location.reload();
window.open("http://www.filmania.pl/Default.aspx?code=1", "_self")
} else {
// user cancelled
}
}, { scope: 'email' });
};
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
Это мой код на стороне сервера:
if (Request.QueryString["code"] == "1")
{
try
{
var fbWebContext = new FacebookWebContext();
Label1.Text += fbWebContext.IsAuthenticated();
if (fbWebContext.IsAuthenticated())
{
var fb = new FacebookWebClient();
dynamic me = fb.Get("me");
Label1.Text += me.email + " " + me.name;
}
}
catch (Exception ex)
{
Label1.Text += ex;
}
}
После нажатия кнопки входа в систему Facebook появляется всплывающее окно facebook и запрашивает разрешение. Кажется, что все нормально, но после серверного кода magic Label1.Text всегда == false. Что мне здесь не хватает? Пожалуйста, помогите мне, я потерян.
Благодарим за отзыв. Наконец, мне удалось сделать это с помощью FB.Login. Я добавил этот код на сервер: var app = new DefaultFacebookApplication(); app.AppId = "appIUd"; app.AppSecret = "appSecret"; var fbWebContext = new FacebookWebContext (приложение); Неправильно ли использовать FB.login или я могу оставить его таким образом? – user964986
Хорошо, я поменял его на FB.getLoginStatus и его работу в любом случае. Спасибо. – user964986
Whew! Я рад, что вы поняли это. Счастливое кодирование! – DMCS