这是我到目前为止尝试过的: - (IBAction)getPlaylistsButtonTapped:(id)sender {
NSURLRequest *playlistrequest = [SPTPlaylistList createRequestForGettingPlaylistsForUser:@"charleshyowonkang" withAccessToken:_accessToken error:nil]; [[SPTRequest sharedHandler] performRequest:playlistrequest callback:^(NSError *error, NSURLResponse *response, NSData *data) {
if (error != nil) { NSLog(@"error");
}
SPTPlaylistList *playlists = [SPTPlaylistList playlistListFromData:data withResponse:response error:nil];
NSLog(@"Got possan's playlists, first page: %@", playlists);
NSURLRequest *playlistrequest2 = [playlists createRequestForNextPageWithAccessToken:_accessToken error:nil];
[[SPTRequest sharedHandler] performRequest:playlistrequest2 callback:^(NSError *error2, NSURLResponse *response2, NSData *data2) {
if (error2 != nil) {
NSLog(@"error2");
}
SPTPlaylistList *playlists2 = [SPTPlaylistList playlistListFromData:data2 withResponse:response2 error:nil];
NSLog(@"Got possan's playlists, second page: %@", playlists2);
}];}];
}
我用谷歌搜索过的所有教程/堆栈溢出帖子都是针对Web项目的,但我正在尝试在iOS中执行此操作。
我只需要向 API 发出两次请求。
1) 當使用者使用其 Spotify 帳戶登入時
2)当用户按下"声音"按钮并提取其播放列表/曲目时。
任何iOS帮助都将非常有帮助。
我正在使用以下内容来获取专辑并尝试从播放列表中选取一首歌曲。它工作正常。
[SPTRequest playlistsForUserInSession:auth.session callback:^(NSError *error, SPTListPage *list){
if (error != nil) {
UIAlertView *view = [[UIAlertView alloc] initWithTitle:@"Getting User Info Failed"
message:error.userInfo[NSLocalizedDescriptionKey]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[view show];
return;
}
//[spotifyPlaylistsArr addObjectsFromArray:list.items];
[self getFullPlaylistPage:list];
}];
-(void)getFullPlaylistPage:(SPTListPage*)listPage {
if (listPage.hasNextPage) {
[listPage requestNextPageWithSession:[SPTAuth defaultInstance].session callback:^(NSError *error, SPTListPage* playlistPage) {
if (error != nil) {
NSLog(@"*** Getting playlist page got error: %@", error);
return;
}
SPTListPage *listPage2 = [listPage pageByAppendingPage:playlistPage];
[self getFullPlaylistPage:listPage2];
}];
} else {
NSMutableArray* playlist = [[NSMutableArray alloc]init];
[self convertPlaylists:listPage arrayOfPlaylistSnapshots:playlist positionInListPage:0];
}
}
-(void)convertPlaylists:(SPTListPage*)playlistPage arrayOfPlaylistSnapshots:(NSMutableArray*)playlist positionInListPage:(NSInteger)position {
if (playlistPage.items.count > position) {
SPTPartialPlaylist* userPlaylist = playlistPage.items[position];
[SPTPlaylistSnapshot playlistWithURI:userPlaylist.uri session:[SPTAuth defaultInstance].session callback:^(NSError *error, SPTPlaylistSnapshot* playablePlaylist) {
if (error != nil) {
NSLog(@"*** Getting playlists got error: %@", error);
return;
}
if(!playablePlaylist){
NSLog(@"PlaylistSnapshot from call back is nil");
return;
}
[playlist addObject:playablePlaylist];
[self convertPlaylists:playlistPage arrayOfPlaylistSnapshots:playlist positionInListPage:position+1];
[spotifyPlaylistsArr removeAllObjects];
[spotifyPlaylistsArr addObjectsFromArray:playlist];
[spotifyPlaylists reloadData];
}];
}
else
{
}
}
如果您需要更多详细信息,请告诉我。