Files
youtube_personal/GOOGLE_OAUTH_SETUP.md

144 lines
3.1 KiB
Markdown

# 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.