Newer
Older
final clientId = '60cf1944b15d4f9fb223ba32ce6336d1';
final clientSecret = 'd2a2fd28d1c14d14babd781b8d5b52f5';
final code = "AQCSV8ivXmfyNPrIkq-1xlmsaRmW-zgcrQDKHEQG-axgIFooNsk7tj24-StF_4y3B5ALd4d-efCQM6NkOcyCkQFV4MkuC7kAr8B64Gum8gt5yuutckAFndFDK__HhMQIOyO49OCs7sJIK2e8VHRT5h6dMdCyKUvWg7udxiQSYUHglS97leWWtfo9u_GWK1p3P5Mr_Mg7OYG0DkzY&state=34fFs29kd09";
final scope =
'user-library-modify playlist-modify-private playlist-read-private user-follow-read user-read-current-playing user-library-read user-read-private user-top-read user-follow-modify user-read-recent-played';
'BQBIbqReZny6ctqIobozxD8dh6w7DBcWLLOYGT3NtngJntXWztPp27C4FZigb55UdjbLnyn_BRw3DlFlwPpgBwU8AeIxXOZvw3fw1liR5zpsyJkVq2ndzXBH0P49p9otYmG9w0RkQy1S_SxVeaZlHHJuImXfL3ckYw5u3Z9iMMtn3i2vnhBJjBjxDHb_WHMEeiRPf14xubjRocD7RvRrJrv0fNNDborP4mdcTS3wUkIOgh-_x--9Y_OKGMOjy9XfN4EcuTFmUVyYPLSYhDB6acRlrK1f';
String encoded = base64Url.encode('$clientId:$clientSecret'.codeUnits);
try {
final response = await http.post(
Uri.parse("https://accounts.spotify.com/api/token"),
headers: {"Content_type": "application/x-www-form-urlencoded"},
"grant_type": "client_credentials",
"client_id": clientId,
"client_secret": clientSecret
});
if (response.statusCode == 200) {
print(200);
Map<String, dynamic> tokenResponse = json.decode(response.body);
authToken = tokenResponse["access_token"];
print(authToken);
} else if (response.statusCode == 400) {
print(400);
Map<String, dynamic> tokenResponse = json.decode(response.body);
print(tokenResponse["error_description"]);
} else {print("anderer");}
} catch (e) {
// TODO: Handle Error
}
final response = await http.get(
Uri.parse('https://api.spotify.com/v1/search?q=$text&type=track'),
final responseJson = json.decode(response.body);
final items = responseJson['tracks']['items'] as List;
List songList = items.map((item) => Song.fromJson(item)).toList();
return songList;
playGenre(genre) async {
try {
final response = await http.get(
Uri.parse('https://api.spotify.com/v1/search?q=genre=$genre'),
headers: {'Authorization': 'Bearer $authToken'},
//headers: {HttpHeaders.authorizationHeader: authToken},
);
final responseJson = json.decode(response.body);
final items = responseJson['tracks']['items'] as List;
List songList = items.map((item) => Song.fromJson(item)).toList();
var playSong = songList.first();
play(playSong['id']);
// T
} catch (e) {
log(e.toString());
}
}
getUser() async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/me"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getUserAlbums() async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/me/albums"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getFavoritTracks() async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/me/tracks"),
);
return response;
} catch (e) {
log(e.toString());
}
}
saveToFavoritTracks(track) async {
try {
var response = await http.put(
Uri.parse("https://api.spotify.com/v1/me/tracks?ids=$track"),
);
return response;
} catch (e) {
log(e.toString());
}
}
deleteToFavoritTracks(track) async {
try {
var response = await http.delete(
Uri.parse("https://api.spotify.com/v1/me/tracks?ids=$track"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getTrack(id) async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/tracks/$id"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getGenres() async {
try {
var response = await http.get(
Uri.parse(
"https://api.spotify.com/v1/recommendations/available-genre-seeds"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getAlbum(id) async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/albums/$id"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getAlbumTracks(id) async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/albums/$id/tracks"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getArtist(id) async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/artists/$id"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getArtistTopTracks(id) async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/artists/$id/top-tracks"),
);
return response;
} catch (e) {
log(e.toString());
}
}
getArtistAlbums(id) async {
try {
var response = await http.get(
Uri.parse("https://api.spotify.com/v1/artists/$id/albums"),
);
return response;
} catch (e) {
log(e.toString());
}
}
Future<void> play(String songId) async {
try {
await SpotifySdk.play(spotifyUri: 'spotify:track:$songId');
} on PlatformException catch (e) {
//setStatus(e.code, message: e.message);
} on MissingPluginException {
//setStatus('not implemented');
}
}
class Song {
final String id;
final String name;
final String artist;
final String album;
Song(
this.id,
this.name,
this.artist,
this.album,
);
factory Song.fromJson(Map<String, dynamic> json) {
return Song(
json['id'],
json['name'],
json['artists'][0]['name'],
json['album']['name'],
json['album']['images'][0]['url'],