2015-02-06 2 views
-1

Я создаю приложение с ASP.NET MVC 5 и Identity.
До сих пор логин работает правильно.
Здесь Auth:
Как получить список друзей Facebook в ASP.NET?

var fb = new FacebookAuthenticationOptions(); 
fb.Scope.Add("email"); 
fb.Scope.Add("friends_about_me"); 
fb.Scope.Add("friends_photos"); 
fb.AppId = ""; 
fb.AppSecret = ""; 
fb.Provider = new FacebookAuthenticationProvider() { 
    OnAuthenticated = async FbContext => { 
     FbContext.Identity.AddClaim(
      new System.Security.Claims.Claim("FacebookAccessToken", FbContext.AccessToken)); 
    } 
}; 
fb.SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie; 
app.UseFacebookAuthentication(fb); 

Я пытаюсь получить список друзей. Я искал несколько примеров, но никто не работает с этой версией MVC 5.
Мой вопрос. Как я могу получить всех друзей с этой версией?

Я не хочу использовать Javascript API, я хочу весь код в C#, а затем отправить его в представление.

Я думаю, что нужно просто переписать логин и хранить маркер доступа в сеансе, а затем просто вызвать var client = new FacebookClient(TOKEN);
Так как я могу переписать логин?

ответ

1

У вас уже есть все необходимое. Выбравший OnAuthenticated ответный запрос добавляет требование, содержащее токен доступа для Facebook. Вам просто нужно потянуть требование для пользователя:

var identity = (ClaimsIdentity)User.Identity; 
var facebookClaim = identity.Claims.FirstOrDefault(c => c.Type == "FacebookAccessToken"); 
if (facebookClaim != null) 
{ 
    // access facebook API with `facebookClaim.Value` 
} 

И если она существует, то вы можете использовать API Facebook, чтобы тянуть в своих друзьях, делая стандартные вызовы HTTP через что-то вроде HttpClient.

+0

безупречный. он работает с добавлением 'var client = new FacebookClient (facebookClaim.Value); dynamic me = client.Get («me»); ' , но как я могу перечислить всех друзей. 'me/friends' не работает – BrunoRamalho

+0

Вам нужно обратиться к документам API и/или клиентским документам. –

+0

@bramalho: С API v2 вы больше не получаете всех друзей пользователя, только те, которые являются пользователями приложения. (И да, этот _has_ обсуждался бесчисленное количество раз до этого, и он также четко описан в документах FB и в журнале изменений ...) – CBroe

Смежные вопросы