Home > Enterprise >  Facebook authentication returns tiny profile image, how to get the large image?
Facebook authentication returns tiny profile image, how to get the large image?

Time:01-25

I'm using this piece of code in my program.cs file to authenticate against Facebook and return the users Facebook profile image. It does work but the problem is the image is very small (50 x 50). Is there a way of getting back a larger image?

builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;

})
 .AddFacebook(options =>
  {
      options.AppId = "xxxx";
      options.AppSecret = "xxxx";

      options.Fields.Add("picture");
      options.Events = new OAuthEvents
      {
          OnCreatingTicket = (context) =>
          {
              ClaimsIdentity identity = (ClaimsIdentity)context.Principal.Identity;
              string profileImg = context.User.GetProperty("picture").GetProperty("data").GetProperty("url").ToString();
              identity.AddClaim(new Claim("image", profileImg));
              return Task.CompletedTask;
          }
      };

  });

CodePudding user response:

If anyone else is stuck on this then the answer is pretty simple, for a 500 x 500 image just do this:-

Change this line:

options.Fields.Add("picture");

for this:

options.Fields.Add("picture.width(500).height(500)");
  • Related