Select Git revision
-
Imran Iqbal authored
* Automated using https://github.com/myii/ssf-formula/pull/385
Imran Iqbal authored* Automated using https://github.com/myii/ssf-formula/pull/385
spotify.dart 7.20 KiB
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:flutter/services.dart';
import 'package:http/http.dart' as http;
import 'package:spotify_sdk/spotify_sdk.dart';
class Spotify {
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';
var authToken =
'BQBIbqReZny6ctqIobozxD8dh6w7DBcWLLOYGT3NtngJntXWztPp27C4FZigb55UdjbLnyn_BRw3DlFlwPpgBwU8AeIxXOZvw3fw1liR5zpsyJkVq2ndzXBH0P49p9otYmG9w0RkQy1S_SxVeaZlHHJuImXfL3ckYw5u3Z9iMMtn3i2vnhBJjBjxDHb_WHMEeiRPf14xubjRocD7RvRrJrv0fNNDborP4mdcTS3wUkIOgh-_x--9Y_OKGMOjy9XfN4EcuTFmUVyYPLSYhDB6acRlrK1f';
Future<String> generateAuthToken() async {
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"},
body: {
"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
}
return authToken;
}
search(text) async {
var token = generateAuthToken();
try {
final response = await http.get(
Uri.parse('https://api.spotify.com/v1/search?q=$text&type=track'),
headers: {'Authorization': 'Bearer $authToken'},
);
final responseJson = json.decode(response.body);
print(responseJson);
final items = responseJson['tracks']['items'] as List;
List songList = items.map((item) => Song.fromJson(item)).toList();
return songList;
} catch (e) {
log(e.toString());
}
}
playGenre(genre) async {
try {
final response = await http.get(