J'essaie d'autoriser un utilisateur à utiliser l'API Calendrier de Google dans une application IOS. J'utilise la fonction OAuth2 de Google pour authentifier les utilisateurs. La page d'autorisation s'ouvre sur une erreur 403 avec la description suivante :
Cet agent utilisateur n'est pas autorisé à faire une demande d'autorisation OAuth à Google, car il est classé comme agent utilisateur intégré (également appelé "web-view"). Conformément à nos règles, seuls les navigateurs sont autorisés à envoyer des demandes d'autorisation à Google. Nous proposons plusieurs bibliothèques et échantillons pour les applications natives afin d'effectuer des demandes d'autorisation dans le navigateur.
J'ai suivi la même procédure qui est mentionnée dans ce lien : https://developers.google.com/google-apps/calendar/quickstart/ios
Plutôt que de voir mon code, il est préférable de regarder ce lien : https://developers.google.com/google-apps/calendar/quickstart/ios parce que j'ai copié-collé la même chose dans mon application.
ci-dessous sont mon clientId et mon keyChainItemName :
static NSString *const kKeychainItemName = @"Google Calendar API";
static NSString *const kClientID = @"954370342601-sgl8k0jrbqdeagea9v6vfu3tspte96ci.apps.googleusercontent.com";
0 votes
Montrez votre code source
0 votes
Quelle approche avez-vous adoptée ?
0 votes
@Subbhu Avez-vous trouvé une solution à ce problème ?
3 votes
J'ai rencontré cette erreur dans Android. Je l'ai résolu en définissant "User Agent" pour les paramètres locaux du WebView, c'est-à-dire String ua = "Mozilla/5.0 (Windows NT 6.1 ; WOW64 ; rv:46.0) Gecko/20100101 Firefox/46.0" ; webview.getSettings().setUserAgentString(ua) ; Vous pouvez trouver plus d'informations concernant IOS ici : forums.xamarin.com/discussion/86415/
2 votes
Cette politique est nulle, nous avons une approche OAuth basée sur une vue web établie (multi-plateforme avec contrôle côté serveur) pour diverses applications tierces. Et nous sommes censés mettre en place un flux de navigation spécial pour les applications Google ? L'utilisation d'une vue web nous permet d'épingler des certificats à nos communications avec le serveur, nous donne plus de contrôle sur la suppression des informations sensibles des en-têtes et nous permet de faciliter la connexion à plusieurs comptes pour la même application tierce (toutes les API tierces ne vous permettent pas de forcer la connexion et il est donc parfois essentiel d'effacer les cookies en utilisant l'approche de la vue web).