# Google OAuth + abonnements YouTube Cette étape permet de connecter un compte Google et de charger les abonnements YouTube dans l'onglet **Abonnements**. L'application utilise uniquement le scope : `https://www.googleapis.com/auth/youtube.readonly` Aucun mot de passe Google n'est demandé ou stocké par l'application. --- ## 1. Créer le projet Google Cloud Dans Google Cloud Console : 1. crée ou sélectionne un projet ; 2. ouvre **APIs & Services > Library** ; 3. active **YouTube Data API v3** ; 4. configure l'écran de consentement OAuth ; 5. si l'application est encore en mode **Testing**, ajoute ton propre compte Google dans **Test users**. --- ## 2. Android Package Android : `com.studioweb.youtube_personal` ### Trouver le SHA-1 debug Dans PowerShell : ```powershell cd "D:\07-Logiciels\23-youtube_personal\android" .\gradlew signingReport ``` Cherche : ```text Variant: debug SHA1: ... ``` ### Créer les identifiants Dans **Google Cloud > APIs & Services > Credentials** : 1. crée un **OAuth client ID > Android** ; 2. Package name : `com.studioweb.youtube_personal` 3. SHA-1 : colle le SHA-1 obtenu avec `signingReport`. Ensuite crée aussi : **OAuth client ID > Web application** Copie le Client ID qui se termine normalement par : `apps.googleusercontent.com` ### Dans YouTube Personal 1. ouvre **Abonnements** ; 2. clique **Configurer** ; 3. colle le **Client ID Web** ; 4. clique **Enregistrer** ; 5. clique **Se connecter avec Google**. Le Client ID du client Android n'est pas collé dans l'application. Il sert à autoriser le package + la signature APK côté Google. --- ## 3. Windows Dans **Credentials** crée : **OAuth client ID > Desktop app** Dans YouTube Personal : 1. ouvre **Abonnements** ; 2. clique **Configurer** ; 3. colle le **Client ID Desktop** ; 4. colle le Client Secret si Google en fournit un ; 5. enregistre ; 6. clique **Se connecter avec Google**. Le navigateur système s'ouvre. Après autorisation, Google revient sur une adresse temporaire locale `127.0.0.1`. Aucun serveur externe n'est nécessaire. --- ## 4. Si Google affiche une erreur ### Android : erreur de configuration / annulation après choix du compte Vérifie en priorité : - package exact : `com.studioweb.youtube_personal` - SHA-1 debug correct - client OAuth Android créé dans le même projet - Client ID Web correct dans l'application - ton compte présent dans **Test users** si l'écran OAuth est en Testing ### Erreur YouTube 403 Vérifie que **YouTube Data API v3** est activée dans le même projet. ### Windows : redirect_uri_mismatch Utilise bien un client OAuth de type **Desktop app** et non Web application. --- ## 5. Alternative avec dart-define Les anciens paramètres restent compatibles : ### Android ```powershell flutter run -d f10778d8 ` --dart-define=GOOGLE_WEB_CLIENT_ID="TON_CLIENT_ID_WEB.apps.googleusercontent.com" ``` ### Windows ```powershell flutter run -d windows ` --dart-define=GOOGLE_DESKTOP_CLIENT_ID="TON_CLIENT_ID_DESKTOP.apps.googleusercontent.com" ` --dart-define=GOOGLE_DESKTOP_CLIENT_SECRET="TON_CLIENT_SECRET" ``` Les valeurs `dart-define` ont priorité sur celles enregistrées dans l'app.