redirect_uri
:
URI для перенаправления после того, как пользователь предоставит или отклонит разрешение.Этот URI должен быть введен в белый список URI перенаправления, который вы указали при регистрации приложения.Значение redirect_uri здесь должно точно соответствовать одному из значений, введенных вами при регистрации приложения, включая верхний или нижний регистр, завершающие косые черты и т. Д.
Spotify предоставляет статья доступна который охватывает настройку аутентификации и авторизации, а также пошаговую последовательность действий.
Так что, если http://localhost:5000/Spotify/Callback/
является вашим URL-адресом для перенаправления, вы должны сначала добавить URL-адрес в белый список Redirect URI на панели мониторинга:
И в вашем приложении должны быть совпадения маршрутов http://localhost:5000/Spotify/Callback/
, чтобы получить код через строку запроса, а затем использовать код для получения токена доступа для доступа к API-интерфейсам Spotify.Вот пример кода:
class SpotifyAuthentication
{
public string clientID = "xxxxxxxxxxxxxxxxxxxxx";
public string clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
public string redirectURL = "https://localhost:44363/callback";
}
public class HomeController : Controller
{
SpotifyAuthentication sAuth = new SpotifyAuthentication();
[HttpGet]
public ContentResult Get()
{
var qb = new QueryBuilder();
qb.Add("response_type", "code");
qb.Add("client_id", sAuth.clientID);
qb.Add("scope", "user-read-private user-read-email");
qb.Add("redirect_uri", sAuth.redirectURL);
return new ContentResult
{
ContentType = "text/html",
Content = @"
<!DOCTYPE html>
<html>
<head>
<meta charset=""utf-8"">
<title>Spotify Auth Example</title>
</head>
<body>
<a href=""https://accounts.spotify.com/authorize/" + qb.ToQueryString().ToString() + @"""><button>Authenticate at Spotify</button></a>
</body>
</html>
"
};
}
[Route("/callback")]
public ContentResult Get(string code)
{
string responseString = "";
if (code.Length > 0)
{
using (HttpClient client = new HttpClient())
{
Console.WriteLine(Environment.NewLine + "Your basic bearer: " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(sAuth.clientID + ":" + sAuth.clientSecret)));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(sAuth.clientID + ":" + sAuth.clientSecret)));
FormUrlEncodedContent formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("code", code),
new KeyValuePair<string, string>("redirect_uri", sAuth.redirectURL),
new KeyValuePair<string, string>("grant_type", "authorization_code"),
});
var response = client.PostAsync("https://accounts.spotify.com/api/token", formContent).Result;
var responseContent = response.Content;
responseString = responseContent.ReadAsStringAsync().Result;
}
}
return new ContentResult
{
ContentType = "application/json",
Content = responseString
};
}
}
Ссылка на код: https://github.com/bmsimons/dotnet-core-spotify-authentication и blog .
И, конечно, вы можете использовать промежуточное ПО Spotify, здесь - пример кода.