2013-03-07 18 views
6

Próbuję użyć Google Objective-C Youtube API, aby pobrać playlistę kanału youtube - bez powodzenia.Uzyskiwanie listy odtwarzania kanału Youtube przy użyciu interfejsu API Objective-C

-I pobranych oficjalnego API Google'a od: http://code.google.com/p/gdata-objectivec-client/source/browse/#svn%2Ftrunk%2FExamples%2FYouTubeSample

Ale próbka App naprawdę nie robić nic - jej nawet nie próbkę iOS. Wydaje się być aplikacją Mac OS. Jego plik Read-Me mówi: "Ten przykład powinien automatycznie budować i kopiować na GTL.framework w ramach procesu budowania i uruchamiania."

Ok ... a potem co?

Jak to działa w aplikacji na iPhone'a?

Nie znalazłem żadnych rzeczywistych instrukcji, aby to działało.

Masz pomysł, co tu mamy robić?

Odpowiedz

0

spędziłem dzień i pół próbując zrozumieć to, w jaki sposób korzystać z aplikacji Mac OSX dali jako przykład. Skończyłem z aplikacją na iPhone'a, którą udało mi się zbudować, aby uzyskać wszystkie przesłane przeze mnie wideo z YouTube.

Link: YouTubeProject

W celu uczynienia go pracy:

  • Trzeba dodać projekt GData z google
  • W LTMasterViewController.m-> (GDataServiceGoogleYouTube *) youTubeService: put Twoja nazwa użytkownika i hasło:
+0

„Ostrzeżenie:. Większość nowszych API Google nie są API danych Google Dokumentacja Google Data API stosuje się tylko do starszych API, które są wymienione w katalogu Google Data API Aby uzyskać więcej informacji na temat. konkretny nowy interfejs API, zobacz dokumentację interfejsu API. Aby uzyskać informacje na temat autoryzowania żądań za pomocą nowszego interfejsu API, zobacz Uwierzytelnianie kont Google i autoryzacja. " https://developers.google.com/gdata/ Nie wiem, dlaczego powinniśmy używać GData, jeśli jest on zastępowany. – Zsolt

0

"Klient gdata-objectivec" dla youtube został zastąpiony przez JSON-API Link . Przewiń w dół do youtube.

W celu obsługi interfejsu JSON-API przedstawiono szczegóły: Link.

W celu pobrania listy odtwarzania spójrz na numer Link.

0

Dla wszystkich początkujących, którzy są zagubieni: rozważ przykładową funkcję, która pomoże zrozumieć cały cykl pobierania, analizowania, wyświetlania itp. I wnosić filmy z kanału youtube do widoku tabeli. im nie pisać część Tableview tutaj

-(void)initiateRequestToYoutubeApiAndGetChannelInfo 
{ 
NSString * urlYouCanUseAsSample = @"https://www.googleapis.com/youtube/v3/search?key={YOUR_API_KEY_WITHOUT_CURLY_BRACES}&channelId={CHANNEL_ID_YOU_CAN_GET_FROM_ADDRESS_BAR_WITHOUT_CURLY_BRACES}&part=snippet,id&order=date&maxResults=20"; 



NSURL *url = [[NSURL alloc] initWithString: urlYouCanUseAsSample]; 

// Create your request 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 



// Send the request asynchronously remember to reload tableview on global thread 
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 

// Callback, parse the data and check for errors 
if (data && !connectionError) { 
    NSError *jsonError; 

    NSDictionary *jsonResult = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError]; 

    if (!jsonError) { 
    // better put a breakpoint here to see what is the result and how it is brought to you. Channel id name etc info should be there 

     NSLog(@"%@",jsonResult); 

    /// separating "items" dictionary and making array 

     // 
id keyValuePairDict = jsonResult; 
NSMutableArray * itemList = keyValuePairDict[@"items"]; 
     for (int i = 0; i< itemList.count; i++) { 


    /// separating VIDEO ID dictionary from items dictionary and string video id 
     id v_id0 = itemList[i]; 
     NSDictionary * vid_id = v_id0[@"id"]; 
     id v_id = vid_id; 
     NSString * video_ID = v_id[@"videoId"]; 

    //you can fill your local array for video ids at this point 

     //  [video_IDS addObject:video_ID]; 

    /// separating snippet dictionary from itemlist array 
     id snippet = itemList[i]; 
     NSDictionary * snip = snippet[@"snippet"]; 

    /// separating TITLE and DESCRIPTION from snippet dictionary 
     id title = snip; 
     NSString * title_For_Video = title[@"title"]; 
     NSString * desc_For_Video = title[@"description"]; 

    //you can fill your local array for titles & desc at this point 

      // [video_titles addObject:title_For_Video]; 
      // [video_description addObject:desc_For_Video]; 




    /// separating thumbnail dictionary from snippet dictionary 

     id tnail = snip; 
     NSDictionary * thumbnail_ = tnail[@"thumbnails"]; 

    /// separating highresolution url dictionary from thumbnail dictionary 

     id highRes = thumbnail_; 
     NSDictionary * high_res = highRes[@"high"]; 

    /// separating HIGH RES THUMBNAIL IMG URL from high res dictionary 

     id url_for_tnail = high_res; 
     NSString * thumbnail_url = url_for_tnail[@"url"]; 
    //you can fill your local array for titles & desc at this point 

      [video_thumbnail_url addObject:thumbnail_url]; 


     } 
    // reload your tableview on main thread 
//[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; 
performSelectorOnMainThread:@selector(reloadInputViews) withObject:nil waitUntilDone:NO]; 


    // you can log all local arrays for convenience 
    // NSLog(@"%@",video_IDS); 
     // NSLog(@"%@",video_titles); 
     // NSLog(@"%@",video_description); 
     // NSLog(@"%@",video_thumbnail_url); 
    } 
    else 
    { 
     NSLog(@"an error occurred"); 
    } 
    } 
}]; 

}