如何获取 ASP.NET 中的 Facebook 好友列表?
How to get Facebook Friend List in ASP.NET?
我正在使用 ASP.NET MVC 5 和 Identity 构建应用程序。
到目前为止,登录工作正常。
这里是授权:
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);
我正在尝试获取好友列表。我一直在寻找一些示例,但 none 正在使用此版本的 MVC 5。
我的问题是。我怎样才能找到这个版本的所有朋友?
我不想使用Javascript API,我想要所有的代码在c#中,然后发送到视图。
我想我只需要重写登录并将访问令牌存储在会话中,然后简单地调用var client = new FacebookClient(TOKEN);
那么如何重写登录?
您已经拥有了所需的一切。您设置的 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`
}
如果它存在,那么您可以使用 Facebook API 通过诸如 HttpClient
.
之类的标准 HTTP 调用来吸引他们的朋友
我正在使用 ASP.NET MVC 5 和 Identity 构建应用程序。
到目前为止,登录工作正常。
这里是授权:
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);
我正在尝试获取好友列表。我一直在寻找一些示例,但 none 正在使用此版本的 MVC 5。
我的问题是。我怎样才能找到这个版本的所有朋友?
我不想使用Javascript API,我想要所有的代码在c#中,然后发送到视图。
我想我只需要重写登录并将访问令牌存储在会话中,然后简单地调用var client = new FacebookClient(TOKEN);
那么如何重写登录?
您已经拥有了所需的一切。您设置的 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`
}
如果它存在,那么您可以使用 Facebook API 通过诸如 HttpClient
.