Fehler 403 - 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";
Welchen Ansatz haben Sie mit gehen?
Hast du irgendeine Lösung dafür?
Ich Stand vor diesem Fehler in Android. Ich löste durch die Einstellung "User-Agent" für die lokale WebView-Einstellungen, d.h. ua-String = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"; webview.getSettings().setUserAgentString(ua); mehr kann Man in Bezug auf IOS hier: forums.xamarin.com/discussion/86415/...
diese Politik nervt, wir haben eine etablierte webview basiert OAuth-Ansatz (multi-Plattform mit server-side-control) für diverse Drittanbieter-apps. Und wir sollen in einigen speziellen browser-flow für Google apps? Mithilfe einer webview erlaubt es uns, Zertifikats-pinning-mit unserer server-Kommunikation + es gibt uns mehr Kontrolle zu Streifen sensible Informationen aus dem Header + die wir brauchen, zu erleichtern login auf mehrere Konten für den selben third-party-app (nicht alle third-party-APIs erlauben, Sie zu zwingen, Aufforderung zum login und so manchmal ist es wichtig, um löschen Sie die cookies mithilfe von webview-Ansatz).
InformationsquelleAutor 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.
Fügen Sie den code in application didFinishLaunchingWithOptions
Objective C
Swift 3.0
InformationsquelleAutor Dipen Chudasama
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.
gleiche Problem ich bin vor bei android , können Sie mir empfehlen, wie kann ich dieses Problem beheben.
Kannst du bitte erklären Sie mir, welche Plattform Sie verwenden für das erstellen von android app. Wie cordova , ionic oder native android-apps in Android-studio.
native android app in Android studio
InformationsquelleAutor Hardeep Singh
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
Problem war angemeldet für die Fahrt als auch code.google.com/a/google.com/p/apps-api-issues/issues/...
Leider gibt es keine einfache Lösung, um dieses Recht jetzt. Die Sache, die ich Tat, war die Verwendung der nativen Google anmelden SDKs und integrieren Sie diese separat in die iOS und Droid Projekte. Scheint gut zu funktionieren, obwohl die Verwendung von PCL ist derzeit sehr begrenzt. Ich bin versucht zu entwickeln, dieses setup in einem standalone-plugin. So können sehen.
Unglaublich, dieses problem tritt auch mit dem nativen Browser von Android 4.x aus der pre-Chrom-Monopol und aktualisierbar webview-ära.
InformationsquelleAutor Rhishikeshj
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 Maxim Pavlov
Habe dasselbe Problem. Gelöst durch Einstellung folgende Eigenschaft auf die webview-Objekt:
Hoffe, das wird helfen.
InformationsquelleAutor Kundan Singh Thakur
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.danke dir.. du mich retten
InformationsquelleAutor Ramaraj T
Werfen Sie einen Blick auf dieses Problem. Verwenden GTMAppAuth statt.
InformationsquelleAutor 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 Tmm
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.
wo sind Sie stecken geblieben? Auch Dipen 's Antwort funktioniert, aber ich persönlich bevorzuge nicht einzumischen Safari-Einstellungen und es ist besser zu Verwendung Google authoriser wie in der Fehlermeldung genannten.
Ich habe diesen link developers.google.com/google-apps/calendar/quickstart/ios und erfolgreich zeigt-Taste und weiter zu verarbeiten, um mit google anmelden und, wenn ich hinzufügen-Ereignis im web-browser mit den selben Fall, ich m in der Lage zu zeigen, dass auf textview in viewcontroller aber ich möchte wissen, wie Sie die Veranstaltung erstellen und speichern Sie in der ios-app swift @Jen Jose
wenn u haben, mit dem ich reden kann u durch skype oder in einem persönlichen chat
ich die Integration der Google-Zeichen und der Aktivierung von Google-Kalender-API korrekt und es funktioniert, aber wie funktioniert das mit Google Kalender-API zu Holen und zu Kalender hinzufügen Ereignisse.brauche Hilfe
InformationsquelleAutor 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 Mauker Olimpio
Ich das Problem gelöst, es dauerte 1 Jahr 🙂 nur ein Scherz.
fügen Sie einfach die folgende Zeile in der Präferenz in config.xml
Bitte beachten Sie, löste ich dieses google-login-Problem mit den Inapp-browser.
Dank
InformationsquelleAutor Prosenjeet Paul