A .NET library for interacting with the Gravatar API.
Install the library via NuGet:
dotnet add package gravatar-dotnet
Install optional library extensions for more functionality, depending on your use case.
Integrate gravatar-dotnet and your DI container of choice. Install the extension library via NuGet:
dotnet add package gravatar-dotnet-dependencyinjection
Integrate gravatar-dotnet and ASP.NET Core with Razor Tag Helpers for avatars and profile QR codes. Install the extension library via NuGet:
dotnet add package gravatar-dotnet-aspnetcore
- Obtain an API key from the Gravatar Developer Dashboard (requires a Gravatar account and developer application).
- Pass the API key into a new instance of the
GravatarService
class or use a configuredHttpClient
if advanced configuration (e.g., proxies) is required. - Use the methods available on
GravatarService
to interact with the Gravatar API.
The library can be initialized in three ways:
Pass in your API key directly:
var gravatar = new GravatarService("YOUR_GRAVATAR_API_KEY");
Use an existing HttpClient
, ensuring that BaseAddress
and an Authorization
header have been set:
var httpClient = new HttpClient(
new GravatarDelegatingHandler()
{
InnerHandler = new HttpClientHandler()
},
disposeHandler: true)
{
BaseAddress = new Uri("https://api.gravatar.com/v3/"),
Timeout = TimeSpan.FromSeconds(5)
};
httpClient.DefaultRequestHeaders.Add(
$"Authorization",
$"Bearer YOUR_GRAVATAR_API_KEY");
var gravatar = new GravatarService(httpClient);
If you've installed the appropriate extension library.
- Register
GravatarService
with your dependency container:
services.AddGravatarHttpClient(options =>
{
options.BaseUrl = new Uri("https://api.gravatar.com/v3/");
options.ApiKey = "YOUR_GRAVATAR_API_KEY";
});
- Inject
IGravatarService
where needed:
public class MyClass
{
private readonly IGravatarService gravatar;
public MyClass(IGravatarService gravatar)
{
this.gravatar = gravatar;
}
}
You can construct a valid Gravatar Avatar URL as follows:
var gravatarAvatarUrl =
GravatarHelper.GetAvatarUrl(
"[email protected]",
size: 64,
defaultValue: GravatarAvatarDefault.Identicon,
forceDefaultValue: false,
rating: GravatarAvatarRating.G,
withFileExtension: false)
To retrieve the avatar image, make a HTTP GET request to the URL that is returned.
var gravatarProfile =
await gravatar.GetProfileAsync(
GravatarHelper.GetEmailAddressHash(
"[email protected]"));
You can construct a valid Gravatar Profile QR Code URL as follows:
var gravatarProfileQRCodeUrl =
GravatarHelper.GetProfileQRCodeUrl(
"[email protected]",
size: 256,
type: GravatarProfileQRCodeType.Logo,
version: GravatarProfileQRCodeVersion.Modern)
To retrieve the profile QR code image, make a HTTP GET request to the URL that is returned.
If you've installed the appropriate extension library, add the following to your _ViewImport.cshtml
:
@addTagHelper *, Gravatar.Extensions.AspNetCore
To automatically construct the src
URL for an img
tag from a Gravatar Avatar URL, use gravatar-avatar
and the various gravatar-*
attributes supplied.
<img gravatar-avatar
gravatar-email-address="Context.User.Claims..."
gravatar-default="identicon"
... />
To automatically construct the src
URL for an img
tag from a Gravatar Profile QR Code URL, use gravatar-profile-qrcode
and the various gravatar-*
attributes supplied.
<img gravatar-profile-qrcode
gravatar-email-address="Context.User.Claims..."
... />
Refer to the Usage section above for a quick start, or consult the inline documentation while working in your IDE. For detailed information about the underlying API endpoints, parameters, and expected responses, refer to the official Gravatar API documentation.
Contributions are welcome! To contribute, fork the repository, create a new branch, and submit a pull request with your changes. Please make sure all tests pass before submitting.
This project is licensed under the MIT license. See license.txt
for full details.