2016-05-17 4 views
0

У меня есть этот код, чтобы получить по электронномуFacebook Вход

string code = Request.QueryString["code"]; 
      if (!string.IsNullOrEmpty(code)){ 
       string data = FaceBookConnect.Fetch(code, "me"); 
       FaceBookUser faceBookUser = new JavaScriptSerializer().Deserialize<FaceBookUser>(data); 

А событие щелчка я определил это:

 FaceBookConnect.Authorize("email", Request.Url.AbsoluteUri.Split('?')[0]); 

Проблема заключается в том, что она дает мне нулевое значение, электронной почты, я попытался сделать то же самое для имени, и это единственное поле, которое действительно работает. Я прочитал, что изменил версию на v2.6, и нужно сделать facebookConnect.Fetch по-другому, но я не могу найти, как это сделать. Кто-нибудь что-то знает? Всем спасибо!

ответ

0

Вы запросили информацию о электронной почте от Facebook? Вы должны сделать это при начале логина, и пользователь должен это одобрить до того, как Facebook предоставит его. Facebook также заявляет, что будет недействительным, если адрес недействителен или если они использовали номер телефона для регистрации:

«Обратите внимание, что даже если вы запросите разрешение электронной почты, оно не будет гарантировано, вы получите адрес электронной почты. Например, если кто-то подписался на Facebook с номером телефона, а не адрес электронной почты, адрес электронной почты в поле может быть пустым. "

https://developers.facebook.com/docs/facebook-login/permissions#reference-email

+0

Да, она запрашивается в FaceBookConnect.Authorize, и на facebook webpage Я получаю сообщение о том, что если я хочу поделиться своей личной информацией и электронной почтой, но когда я соглашусь, это письмо равно –

+0

Updat мой ответ там с более релевантным текстом. Я полагаю, у пользователя на Facebook есть учетная запись пользователя? –

+0

Да, я видел это на ссылке facebook, но у пользователя есть электронная почта, поэтому я не понимаю, почему это пустое, я часами пытаюсь это выяснить, но я не знаю –