Comment réparer un “403 - disallowed_useragent” avec le natif de Google Drive iOS SDK?
Je suis en suivant les instructions données sur: https://developers.google.com/drive/ios/quickstart?ver=swift.
Hier, il fonctionnait, mais ce matin, il semble toujours voués à l'échec. Ce qui est curieux, c'est que je suis en utilisant leur langue SDK. Je ne sais pas pourquoi il crois que je suis en utilisant un affichage web. L'erreur exacte est:
Ce user-agent n'est pas autorisé à faire une demande d'autorisation OAuth Google, il est classé comme un intégré à l'agent utilisateur (aussi connu comme un affichage web). Par notre politique, seul navigateur sont autorisés à faire des demandes d'autorisation à Google. Nous vous proposons plusieurs bibliothèques et des échantillons pour des applications natives pour effectuer la demande d'autorisation dans le navigateur.
J'ai cloné: https://github.com/googledrive/ios-quickeditor et obtenu la même erreur.
OriginalL'auteur eipipuz | 2016-11-15
Vous devez vous connecter pour publier un commentaire.
essayer, ça fonctionne pour
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
Google restreindre l'authentification de webviews. c'est accepter safari webkit useragent .remplacer useragent avec au-dessus de chaîne useragent ça fonctionne.
OriginalL'auteur Shiva Krishna Kongara
EDIT: Le commentaire ci-dessous s'applique toujours. J'ai eu des choses à travailler de nouveau dans Swift par ici et maintenant est le résultat et ce que j'ai fait (sur Github). J'espère qu'il sauve quelqu'un d'autre de la journée de travail pour comprendre les choses.
Ici est la triste réponse: Oui, vous êtes à l'aide de l'exemple de Google iOS de Démarrage rapide, le "native SDK" comme vous l'appelez. Qui est dépassé, cependant, car il utilise exactement la web incorporé vue que Google ne veut pas que vous utilisez plus.
Si il fonctionnait avant, mais a cessé de le faire tout d'un coup (comme je l'ai expérimenté moi-même), il peut avoir à faire avec vous de changer quelque chose lié à l'ID du client. Pour les Id client qui existent depuis un certain temps, il semble y avoir une plus longue période de grâce jusqu'à ce que Google dur bloque l'affichage web de l'utiliser (il devrait encore être juste un avertissement pour l'instant, je le comprends). Une nouvelle ID de client, j'ai créé récemment pour des raisons, semble avoir causé juste que, il m'a coincé dans avoir à remplacer Google Drive code d'authentification pour une nouvelle version à court préavis.
Pour les options (qui pour l'instant seulement d'autres répondant à vos listes de question de le Google blog), après un peu de recherche GTMAppAuth semble être l'option la plus viable pour moi, comme je ne suis pas intéressé en toute connexion de l'utilisateur. Mais j'ai peut-être tort.
GTMAppAuth a des exemples de code pour iOS, mais juste en Objective-C. je n'ai pas encore de le faire à travers. En général, votre code logique modifier comme suit: Votre solution actuelle ne authentification purement sein de votre application. Il est asynchrone, mais ne laissez pas votre application. La nouvelle solution vous oblige à initier l'authentification au sein de votre application lors de la préparation et de se souvenir de votre fonctionnalité de rappel. L'authentification de l'initiation puis ouvre un navigateur à l'extérieur, qui, une fois effectuées les causes d'une URL de callback dans votre délégué d'application. Dans votre délégué d'application, vous vérifiez ensuite pour votre prêt de rappel, et en fonction de l'état du résultat de l'appel de l'extérieur, informe l'utilisateur sur le succès ou l'échec de l'extérieur de l'authentification.
OriginalL'auteur marco
Vous pouvez résoudre ce problème en utilisant la 3ème partie du SDK par CloudRail qui fonctionne très bien pour Google Drive et les nouvelles restrictions d'authentification. Ce tutoriel exactement vous montre comment utiliser un navigateur externe plutôt qu'un affichage web.
OriginalL'auteur Tmm