403 Fehler - Das ist ein Fehler. Fehler: disallowed_useragent
Ich versuche zu autorisieren eines Benutzers für Google Kalender-API innerhalb einer IOS-app.
Ich bin mit dem OAuth2-feature von Google, um Nutzer zu authentifizieren. Genehmigung Seite öffnet sich mit einem 403-Fehler mit der Beschreibung:
Diesem user-agent ist nicht gestattet, um die OAuth-Autorisierung-Anforderung an Google, wie es eingestuft wird, wie eine eingebettete user-agent (auch bekannt als web-Ansicht). Pro unsere Politik, nur Browser erlaubt sind, um Genehmigung Anfragen an Google. Wir bieten mehrere Bibliotheken und Beispiele für native apps ausführen Zulassungsantrag im browser.
Ich folgte der gleichen Prozedur, die erwähnt wird in diesem link: https://developers.google.com/google-apps/calendar/quickstart/ios
Eher als zu sehen, wie mein code, es ist besser, zu sehen unter diesem link: https://developers.google.com/google-apps/calendar/quickstart/ios
weil ich kopiert /eingefügt, die gleiche Sache in meiner Anwendung.
unten sind meine clientId und keyChainItemName:
static NSString *const kKeychainItemName = @"Google Calendar API";
static NSString *const kClientID = @"954370342601-sgl8k0jrbqdeagea9v6vfu3tspte96ci.apps.googleusercontent.com";
InformationsquelleAutor der Frage Subbu | 2016-11-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Meinem Fall war ich mit nativen web-Ansicht zum login mit google, finde ich die Art und Weise, dass Sie sollten geben user-agent auf "Webansicht" es war für mich gearbeitet. Versuchen Sie unten code ich bin sicher, es wird gearbeitet.
Objective C
Swift 3.0
InformationsquelleAutor der Antwort Dipen Chudasama
Die kurze Antwort ist, dass Google aktualisiert hat seine Sicherheits-Beschränkungen, die für die OAuth-flow. Sie sind nicht zu erlauben, native web-Ansichten initiieren von OAuth-flows, sondern vielmehr die Menschen ermutigen, zu verwenden, die OS-Browser zu tun. In deinem Fall, wirst du wohl warten müssen, für die Google Kalender-SDK-update-code zu gehorchen, die neu empfohlenen fließen. Weitere Informationen finden Sie in der Google blog
EDIT : ich habe versucht ein cross-Plattform-plugin, das wickelt sich um die native Google-sign-in-SDKs, die für die Verwendung in einem Xamarin forms-Anwendung. Weitere Informationen finden Sie hier
InformationsquelleAutor der Antwort Rhishikeshj
Ich habe auch vor dieses Problem auf meine cordova-Projekt. Sie können versuchen, diese:
Nur fügen Sie diese an Ihre config.xml arbeitete für mich.
InformationsquelleAutor der Antwort Hardeep Singh
Wie bereits in früheren Antworten
SFSafariViewController
ist einen Weg zu gehen, aber für diejenigen, die noch verwendetWKWebView
für die OAuth-Autorisierung gibt es eine einfache Lösung.Nur ändern
customUserAgent
entweder eine von Liste oder legen Sie es auf einem beliebigen Wert. Danachdisallowed_useragent
Fehler verschwinden:Zur änderung
User-Agent
imUIWebView
können Sie überprüfen,diese Antwort.Aber seien Sie vorsichtig, da einige backend-code abhängen kann
User-Agent
- header-Wert.InformationsquelleAutor der Antwort Maxim Pavlov
Standardmäßig, wenn Sie haben noch keine google-app, die google-SDK öffnet die Anmeldung innerhalb einer
UIWebView
wenn wir beginnen die login mithilfe der folgenden Methode.Habe ich nur noch eine Zeile, bevor Sie diese, die ist wie folgt.
Nun die google nicht gestatten, mit der
UIWebView
popup. Stattdessen öffnet im Safari-browser. Und jetzt alles funktioniert einfach so wie es war.InformationsquelleAutor der Antwort Ramaraj T
Werfen Sie einen Blick auf dieses Problem ist. Verwenden GTMAppAuth statt.
InformationsquelleAutor der Antwort Sally
Google beschlossen, nicht mehr erlauben embedded-Browser zu behandeln, die die oAuth-Authentifizierung. Der beste Weg ist die Verwendung SFSafariViewController auf iOS. Hier ist, wie es gelöst werden kann mit der CloudRail SDK:
In Objective-C:
Swift:
Den vollständigen blog-post für dieses Problem kann hier gefunden werden: Lösung "disallowed_useragent' für Google-Dienste
InformationsquelleAutor der Antwort Tmm
Habe dasselbe Problem. Gelöst durch Einstellung folgende Eigenschaft auf die webview-Objekt:
Hoffe, das wird helfen.
InformationsquelleAutor der Antwort Kundan Singh Thakur
Gibt es einen workaround für dieses Problem, nachdem die jüngsten Veränderungen in den Google-OAuth-Richtlinien.
Nach der Integration der Google-Zeichen und der Aktivierung von Google-Kalender-API, ich war in der Lage, mit Google-Kalender-API zu Holen und zu Kalender hinzufügen Ereignisse. Wir müssen nur legen Sie die authorizer für GTLServiceCalendar die erhalten wird, nach Google sign-in.
service.authorizer = user.authentication.fetcherAuthorizer()
Hier ist der code-Schnipsel von Google GIDSignIn, gefolgt vom abrufen von Kalenderereignissen.
Dies ist, wie mein Abschnitt Anmeldeinformationen in Google Dev Console.
InformationsquelleAutor der Antwort Jen Jose
Nach der google-Anmeldung Ende der Anmeldung, verwenden Sie die
currentUser
um diefetcherAuthorizer
, dies kann verwendet werden, wie ein Vollmachtgeber bei der Google Drive-Dienst.Danach können Sie die Google Drive-Dienst in der Regel:
InformationsquelleAutor der Antwort Mauker Olimpio