In den Schritten auf dieser Seite wird beschrieben, wie Sie schnell eine einfache iOS-Anwendung erstellen, die Anfragen an die YouTube Data API sendet. In diesem Beispiel wird gezeigt, wie Daten zum YouTube-Kanal GoogleDevelopers abgerufen werden. Der Code enthält auch Kommentare, in denen erklärt wird, wie die Abfrage geändert werden muss, um Daten zum YouTube-Kanal des aktuellen Nutzers abzurufen.
Vorbereitung
Für diese Kurzanleitung benötigen Sie Folgendes:
- Xcode 8.0 oder höher
- CocoaPods-Abhängigkeitsmanager.
- Zugriff auf das Internet und einen Webbrowser
- Ein Google-Konto.
Schritt 1: YouTube Data API aktivieren
-
Verwenden Sie diesen Assistenten, um ein Projekt in der Google Developers Console zu erstellen oder auszuwählen und die API automatisch zu aktivieren. Klicken Sie auf Weiter und dann auf Zu den Anmeldedaten.
-
Klicken Sie auf der Seite Anmeldedaten erstellen auf Abbrechen.
-
Klicken Sie oben auf der Seite auf den Tab OAuth-Zustimmungsbildschirm. Wählen Sie eine E-Mail-Adresse aus, geben Sie einen Produktnamen ein, falls noch nicht festgelegt, und klicken Sie auf die Schaltfläche Speichern.
-
Wählen Sie den Tab Anmeldedaten aus, klicken Sie auf die Schaltfläche Anmeldedaten erstellen und wählen Sie OAuth-Client-ID aus.
- Wählen Sie den Anwendungstyp iOS aus, geben Sie den Namen „YouTube Data API Quickstart“ und die Paket-ID
com.example.QuickstartApp
ein und klicken Sie auf die Schaltfläche Erstellen.
Schritt 2: Arbeitsbereich vorbereiten
- Öffnen Sie Xcode und erstellen Sie ein neues Projekt:
- Klicken Sie auf File > New > Project (Datei > Neu > Projekt), wählen Sie die Vorlage iOS > Application > Single View Application (iOS > Anwendung > Anwendung mit einer Ansicht) aus und klicken Sie auf Next (Weiter).
- Legen Sie den Produktnamen auf „QuickstartApp“, die Organisations-ID auf „com.example“ und die Sprache aufObjective-Cfest.
Unter der Organisations-ID sollte eine generierte Bundle-ID angezeigt werden, die mit der iOS-Bundle-ID (
com.example.QuickstartApp
) übereinstimmt, die Sie in Schritt 1b eingegeben haben. - Klicken Sie auf Weiter.
- Wählen Sie ein Zielverzeichnis für das Projekt aus und klicken Sie auf Erstellen.
- Schließen Sie das Projekt, indem Sie auf File > Close Project (Datei > Projekt schließen) klicken.
- Öffnen Sie ein Terminalfenster und gehen Sie zu dem Verzeichnis, das die gerade erstellte Datei
QuickstartApp.xcodeproj
enthält. Führen Sie die folgenden Befehle aus, um die Podfile-Datei zu erstellen, die Bibliothek zu installieren und das resultierende Xcode-Projekt zu öffnen:
cat << EOF > Podfile && platform :ios, '8.0' target 'QuickstartApp' do pod 'GoogleAPIClientForREST/YouTube', '~> 1.2.1' pod 'Google/SignIn', '~> 3.0.3' end EOF pod install && open QuickstartApp.xcworkspace
Wählen Sie im XCode Project Navigator den Projektknoten „QuickstartApp“ aus. Klicken Sie dann auf den Menüpunkt Datei > Dateien zu „QuickstartApp“ hinzufügen.
Suchen Sie die zuvor heruntergeladene Datei
GoogleService-Info.plist
und wählen Sie sie aus. Klicken Sie auf die Schaltfläche Optionen.Treffen Sie im Optionsfenster die folgenden Auswahlen und klicken Sie dann auf die Schaltfläche Hinzufügen:
- Klicken Sie das Kästchen Elemente bei Bedarf kopieren an.
- Prüfen Sie alle Ziele, die im Bereich Zu Zielen hinzufügen aufgeführt sind.
Wählen Sie bei weiterhin ausgewähltem Projektknoten im Bereich TARGETS (ZIELE) „QuickstartApp“ aus, wie in den beiden Abbildungen unten gezeigt:
Klicken Sie auf den Bereich, der in diesem Screenshot zu sehen ist:
Wählen Sie dann das richtige Ziel aus:
Wählen Sie den Tab Info aus und maximieren Sie den Bereich URL-Typen.
Klicken Sie auf die Schaltfläche + und fügen Sie ein URL-Schema für Ihre umgekehrte Client-ID hinzu. Öffnen Sie die in Schritt 2.f ausgewählte Konfigurationsdatei
GoogleService-Info.plist
, um diesen Wert zu finden. Suchen Sie nach dem Schlüssel REVERSED_CLIENT_ID. Kopieren Sie den Wert dieses Schlüssels und fügen Sie ihn auf der Konfigurationsseite in das Feld URL-Schemas ein. Lassen Sie die anderen Felder leer.Erstellen Sie das Projekt neu:
- Klicken Sie auf Produkt > Build-Ordner bereinigen, während Sie die Wahltaste gedrückt halten.
- Klicken Sie auf Produkt > Entwickeln.
Schritt 3: Beispiel einrichten
Ersetzen Sie den Inhalt der folgenden Dateien durch den bereitgestellten Code:#import <UIKit/UIKit.h> @import GoogleSignIn; @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end
#import "AppDelegate.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Initialize Google sign-in. [GIDSignIn sharedInstance].clientID = @"<YOUR_CLIENT_ID>"; return YES; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[GIDSignIn sharedInstance] handleURL:url sourceApplication:sourceApplication annotation:annotation]; } @end
#import <UIKit/UIKit.h> @import GoogleSignIn; #import <GTLRYouTube.h> @interface ViewController : UIViewController <GIDSignInDelegate, GIDSignInUIDelegate> @property (nonatomic, strong) IBOutlet GIDSignInButton *signInButton; @property (nonatomic, strong) UITextView *output; @property (nonatomic, strong) GTLRYouTubeService *service; @end
#import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Configure Google Sign-in. GIDSignIn* signIn = [GIDSignIn sharedInstance]; signIn.delegate = self; signIn.uiDelegate = self; signIn.scopes = [NSArray arrayWithObjects:kGTLRAuthScopeYouTubeReadonly, nil]; [signIn signInSilently]; // Add the sign-in button. self.signInButton = [[GIDSignInButton alloc] init]; [self.view addSubview:self.signInButton]; // Create a UITextView to display output. self.output = [[UITextView alloc] initWithFrame:self.view.bounds]; self.output.editable = false; self.output.contentInset = UIEdgeInsetsMake(20.0, 0.0, 20.0, 0.0); self.output.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; self.output.hidden = true; [self.view addSubview:self.output]; // Initialize the service object. self.service = [[GTLRYouTubeService alloc] init]; } - (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)user withError:(NSError *)error { if (error != nil) { [self showAlert:@"Authentication Error" message:error.localizedDescription]; self.service.authorizer = nil; } else { self.signInButton.hidden = true; self.output.hidden = false; self.service.authorizer = user.authentication.fetcherAuthorizer; [self fetchChannelResource]; } } // Construct a query and retrieve the channel resource for the GoogleDevelopers // YouTube channel. Display the channel title, description, and view count. - (void)fetchChannelResource { GTLRYouTubeQuery_ChannelsList *query = [GTLRYouTubeQuery_ChannelsList queryWithPart:@"snippet,statistics"]; query.identifier = @"UC_x5XG1OV2P6uZZ5FSM9Ttw"; // To retrieve data for the current user's channel, comment out the previous // line (query.identifier ...) and uncomment the next line (query.mine ...). // query.mine = true; [self.service executeQuery:query delegate:self didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)]; } // Process the response and display output - (void)displayResultWithTicket:(GTLRServiceTicket *)ticket finishedWithObject:(GTLRYouTube_ChannelListResponse *)channels error:(NSError *)error { if (error == nil) { NSMutableString *output = [[NSMutableString alloc] init]; if (channels.items.count > 0) { [output appendString:@"Channel information:\n"]; for (GTLRYouTube_Channel *channel in channels) { NSString *title = channel.snippet.title; NSString *description = channel.snippet.description; NSNumber *viewCount = channel.statistics.viewCount; [output appendFormat:@"Title: %@\nDescription: %@\nViewCount: %@\n", title, description, viewCount]; } } else { [output appendString:@"Channel not found."]; } self.output.text = output; } else { [self showAlert:@"Error" message:error.localizedDescription]; } } // Helper for showing an alert - (void)showAlert:(NSString *)title message:(NSString *)message { UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { [alert dismissViewControllerAnimated:YES completion:nil]; }]; [alert addAction:ok]; [self presentViewController:alert animated:YES completion:nil]; } @end
Schritt 4: Beispiel ausführen
Wechseln Sie zum Schema QuickstartApp, indem Sie auf Product > Scheme > QuickstartApp klicken, und führen Sie das Beispiel mit dem Gerätesimulator oder einem konfigurierten Gerät aus (Cmd+R). Wenn Sie das Beispiel zum ersten Mal ausführen, werden Sie aufgefordert, sich in Ihrem Google-Konto anzumelden und den Zugriff zu autorisieren.
Hinweise
- Autorisierungsinformationen werden in Ihrem Schlüsselbund gespeichert, sodass bei nachfolgenden Ausführungen keine Autorisierung erforderlich ist.