0

Я добавляю аутентификацию Facebook в мое новое приложение ASP.NET 5 MVC 6. Я следую этой статье: https://docs.asp.net/en/latest/security/authentication/sociallogins.htmlДополнительные разрешения для аутентификации Facebook

Я добавил следующий фрагмент кода к моему методу Startup Configure, который дает мне основную информацию о пользователе.

app.UseFacebookAuthentication(options => 
{ 
    options.AppId = "myFacebookAppId"; 
    options.AppSecret = "myFacebookSecret"; 
}); 

Я хотел бы запросить еще одну вещь из Facebook, которая является датой рождения пользователя.

Где добавить это в свой код?

ответ

0

Класс options имеет свойство Fields;

/// <summary> 
/// The list of fields to retrieve from the UserInformationEndpoint. 
/// https://developers.facebook.com/docs/graph-api/reference/user 
/// </summary> 
public IList<string> Fields { get; } 

Добавить birthday в список Полевой недвижимости.

+0

Стоит отметить, что просто добавив 'birthday' поле в' fields' собственности (которое не существует в RC1, BTW), не достаточно: вы должны просить ' пользователь_birthday' scope. – Pinpoint

0

Чтобы запросить дату пользователя рождения, вам необходимо:

  • Update Scope свойства, чтобы убедиться, что user_birthday сфера включена посредством промежуточного программного обеспечения Facebook при создании запроса авторизации. Если вы не добавить user_birthday сферы, Graph API не будет не возвращаться дата пользователя рождения: options.Scope.Add("user_birthday");

  • Обновлять Fields свойства включить birthday поля, как это было предложено @blowdart: options.Fields.Add("birthday");.

Но обратите внимание, что Fields свойство не существует в ASP.NET 5 RC1 (последняя версия ATM). В качестве альтернативы, you can also replace the UserInformationEndpoint property to include the fields you need:

options.UserInformationEndpoint = "https://graph.facebook.com/me?fields=birthday,email,name"; 
+0

@ У вас был шанс попробовать? – Pinpoint