Spotify.NET/SpotifyAPI.Docs/docs/client_credentials.md

46 lines
1.3 KiB
Markdown
Raw Permalink Normal View History

2020-06-03 22:57:28 +01:00
---
id: client_credentials
title: Client Credentials
---
> The Client Credentials flow is used in server-to-server authentication.
> Only endpoints that do not access user information can be accessed.
By supplying your `SPOTIFY_CLIENT_ID` and `SPOTIFY_CLIENT_SECRET`, you get an access token.
## Request token once
To request an access token, build a `ClientCredentialsRequest` and send it via `OAuthClient`. This access token will expire after some time and you need to repeat the process.
```csharp
public static async Task Main()
{
var config = SpotifyClientConfig.CreateDefault();
var request = new ClientCredentialsRequest("CLIENT_ID", "CLIENT_SECRET");
var response = await new OAuthClient(config).RequestToken(request);
var spotify = new SpotifyClient(config.WithToken(response.AccessToken));
}
```
## Request Token On-Demand
You can also use `CredentialsAuthenticator`, which will make sure the Spotify instance will always have an up-to-date access token by automatically refreshing the token on demand.
2020-06-03 22:57:28 +01:00
```csharp
public static async Task Main()
{
var config = SpotifyClientConfig
.CreateDefault()
2020-08-24 10:29:13 +01:00
.WithAuthenticator(new ClientCredentialsAuthenticator("CLIENT_ID", "CLIENT_SECRET"));
2020-06-03 22:57:28 +01:00
var spotify = new SpotifyClient(config);
}
```
:::info
Thread safety is not guaranteed when using `CredentialsAuthenticator`.
2020-06-03 22:57:28 +01:00
:::