2016-02-12 74 views
0

这里挑一首歌是我试过到目前为止: - (IBAction为)getPlaylistsButtonTapped:(ID)发送{获取用户的播放列表,并能够从中

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); 
    }];}]; 

}

所有教程/ stackoverflow的帖子我google了是为web项目,但我想在iOS中这样做。

我才真正需要做的API请求两次。

1)当用户与他们的帐户的Spotify

2)当用户按下登录“声音”按钮,它拉他们的播放列表/轨道。

任何iOS的帮助将是非常有益的。

回答

0

我现在用的是下面让专辑,并试图拿起从播放列表中的一首歌曲。它工作正常。

[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 
    { 

    } 
} 

请让我知道如果你需要任何更多的细节。

相关问题