2016-02-12 42 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 
    { 

    } 
} 

請讓我知道如果你需要任何更多的細節。

相關問題