2016-07-30 18 views
0

Ich folge dem Uber Ouath2 Guide auf this link.Uber api oauth2 Fehler: Keine Umleitung URI mit Code wird zur Verfügung gestellt

Ich habe auch eine registrierte uber app mit einer App-ID, Client-ID, Client-Schlüssel, Server-Token und einer Weiterleitung URI:

http://localhost:8084/testapp 

Allerdings, wenn ich https://login.uber.com/oauth/v2/authorize?client_id=[my_client_id]&response_type=code&redirect_uri=http://localhost:8084/testapp aufrufen, anstatt eine Verbindung mit einem der Empfangs Token-Code (als paremeter angegeben), ich bin die nächste hTML-Inhalte empfangen:

<html class="no-js"> 
 
    <!--<![endif]--> 
 
    <head> 
 
     <meta content="HTML Tidy for Java (vers. 26 sep 2004), see www.w3.org" name="generator"/> 
 
     <meta charset="utf-8"/> 
 
     <meta content="IE=edge" http-equiv="X-UA-Compatible"/> 
 
     <title>Uber</title> 
 
     <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/> 
 
     <link type="image/x-icon" href="https://d1a3f4spazzrp4.cloudfront.net/login/images/favicon.17677bc2cadb48697a3d2da2efc65d8c.ico" rel="icon"/> 
 
     <link href="https://d1a3f4spazzrp4.cloudfront.net/login/style-login/style.770406eec666b67f729c6f924b60ee7e.css" rel="stylesheet" type="text/css"/> 
 
     <link href="https://d1a3f4spazzrp4.cloudfront.net/uber-fonts/2.0.1/superfine.css" rel="stylesheet" type="text/css"/> 
 
     <link href="https://d1a3f4spazzrp4.cloudfront.net/uber-icons/3.13.0/uber-icons.css" rel="stylesheet" type="text/css"/> 
 
    </head> 
 
    <body> 
 
     <div class="content text--center soft--top"> 
 
     <div class="push-gutter--sides push-small--top"> 
 
      <div id="login-content"> 
 
       <div id="fb-root"/> 
 
       <script type="text/javascript">window.fbAsyncInit = function() { 
 
     FB.init({ 
 
      appId  : '277064115737714', 
 
      xfbml  : false, 
 
      version : 'v2.2' // good until Oct-2016 
 
     }); 
 
     if (window.asyncUberFacebook) { 
 
      window.asyncUberFacebook(); 
 
     } 
 
     }; 
 

 
     (function(d, s, id){ 
 
      var js, fjs = d.getElementsByTagName(s)[0]; 
 
      if (d.getElementById(id)) {return;} 
 
      js = d.createElement(s); js.id = id; 
 
      js.src = '//connect.facebook.net/en_US/sdk.js'; 
 
      fjs.parentNode.insertBefore(js, fjs); 
 
     }(document, 'script', 'facebook-jssdk'));</script> 
 
       <script type="text/javascript">window.phone_email_placeholder = 'Email or Phone Number'; 
 
    window.locale = 'MX';</script> 
 
       <p class="primary-font primary-font--semibold background-line push--top push--bottom"> 
 
        <span>Sign In</span> 
 
       </p> 
 
       <form novalidate="novalidate" id="login-form" class="form" method="post"> 
 
        <input value="1469850228-01-me6IZ7r1uyi5eZuFlK3sjFsIsAmBEkXjr_sR7f1RCAw=" name="_csrf_token" type="hidden"/> 
 
        <input name="access_token" data-js="access-token" type="hidden"/> 
 
        <a data-js="facebook-connect" class="btn btn--full btn--facebook soft-small--sides" href="#"> 
 
        <span class="push--ends flush">Continue with Facebook</span> 
 
        </a> 
 
        <p class="primary-font primary-font--semibold background-line push--top push--bottom"> 
 
        <span>or use email</span> 
 
        </p> 
 
        <div id="input-container" class="form-group push-tiny--top flush--bottom"> 
 
        <input id="email" value="" placeholder="Email Address" class="text-input square--bottom" name="email" type="email"/> 
 
        </div> 
 
        <div class="form-group push--bottom"> 
 
        <input id="password" placeholder="Password" class="text-input square--top" name="password" type="password"/> 
 
        </div> 
 
        <button type="submit" class="btn btn--large btn--full">Sign In</button> 
 
       </form> 
 
       <hr id="signin-signup-separator" class="push--top push-small--bottom"/> 
 
       <p class="text--center push-small--bottom"> 
 
        <a class="forgot-password" href="https://login.uber.com/forgot-password">Forgot Password</a> 
 
       </p> 
 
       <p class="text--center"> 
 
        Don't have an account? 
 
        <a href="https://get.uber.com/go/?client_id=djwOETZAgWhY57PCjTA5ZkcRAB" id="sign_up_link">Sign Up</a> 
 
       </p> 
 
      </div> 
 
     </div> 
 
     <script src="https://d1a3f4spazzrp4.cloudfront.net/login/scripts/analytics.7a14669194cf515d1963bd28ce5e8290.js" type="text/javascript"/> 
 
     <script type="text/javascript">Analytics.init({ 
 
     services: { 
 
      tealium: { 
 
       account: 'uber', 
 
       profile: 'main', 
 
       env: 'prod', 
 
       geo: 'MX' 
 
      } 
 
     } 
 
    });</script> 
 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"/> 
 
     <script src="https://d1a3f4spazzrp4.cloudfront.net/login/scripts/login.b8edef605ff990f6a792faf084868f5c.js" type="text/javascript"/> 
 
     <script src="https://ws.audioeye.com/ae.js" type="text/javascript"/> 
 
     <script type="text/javascript">Analytics.track('load', 'login.pageview');</script> 
 
     </div> 
 
    </body> 
 
</html>

Ich habe nach dieser Art von Problem gesucht und auch viele Beiträge über uber api und oauth ohne effektive Lösungen gelesen.

Was mache ich falsch?

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

0

Sie sagen, dass Sie anstelle einer Webseite, die beim Klicken auf diesen Link in einem Browser geladen wird, eine unbearbeitete HTML-Antwort erhalten, oder sagen Sie, dass Sie in einigen eine GET-Anfrage an diese URL senden anders als das Öffnen in einem Browser?

+0

Ich mache eine GET-Anfrage. Ich habe es auf zwei Arten getestet: 1. Verwendung von SOAPUI. 2. Bereitstellen einer REST mithilfe von REST über Tomcat und die Apache http-Bibliothek. Die Antwort ist in beiden Fällen gleich: der HTML-Inhalt, den ich in die ursprüngliche Frage eingefügt habe. Danke. – user2863655

+0

* 2. Bereitstellen einer REST mit Jersey über Tomcat und der Apache http-Bibliothek. – user2863655

+0

Sie sollten den Link in einem Browser öffnen, keine rohe GET-Anfrage mit einem HTTP-Client machen. So wie es funktioniert, navigiert der Benutzer zur URL "oauth", meldet sich an, akzeptiert die Berechtigungen und wird dann an die angegebene redirect_url (I.E your server) mit einem Autorisierungscode in der URL umgeleitet, den Sie gegen ein Zugriffstoken austauschen können. –

0

Ich reagiere auf mich (teilweise), ich hoffe, das könnte anderen helfen.

Gemäß Uber ouath2 guide müssen Sie Ihren Benutzern explizit eine Seite anzeigen, auf der sie interagieren müssen, indem sie ihr E-Mail-Konto und Passwort eingeben. Wenn sie in "Login" klicken, werden sie auf eine Autorisierungsseite umgeleitet und schließlich, wenn sie die Informationszugriffsvereinbarung akzeptieren, leiten sie an das von Ihnen angegebene URI um und geben am Ende den Autorisierungscode ein.

Allerdings ist mein Szenario anders und vielleicht muss ich eine andere Frage stellen, denn was ich brauche ist Zugriff auf meine eigenen Informationen mit einer registrierten Uber App auf meinem eigenen Uber-Konto und ich muss den oauth2 Validierungsprozess automatisieren . Ich meine, dies muss ein automatisierter Prozess sein, bei dem ich nicht mit den Übereinkunft-Informationsanweisungen interagieren werde: Ich brauche auf automatisierte Weise meine Client-ID und alle erforderlichen Daten und erhalte einen Autorisierungscode.