144 lines
3.1 KiB
Markdown
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.
|