Uber api oauth2错误:未提供带代码的重定向URI

时间:2016-07-30 03:51:40

标签: api oauth2 uber-api

我正在关注this link上的超级ouath2指南。

我还有一个注册的超级应用程序,其中包含应用程序ID,客户端ID,客户端密钥,服务器令牌和重定向URI:

http://localhost:8084/testapp

但是,当我调用https://login.uber.com/oauth/v2/authorize?client_id=[my_client_id]&response_type=code&redirect_uri=http://localhost:8084/testapp时,我没有收到带有令牌代码的链接(指定为paremeter),而是接收下一个html内容:



<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>
&#13;
&#13;
&#13;

我已经搜索过这类问题了,而且我已经在很多关于uber api和oauth的帖子中找到了没有有效解决方案的帖子。

我做错了什么?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您是说当您在浏览器中点击该链接时,而不是加载网页,而是取回原始HTML响应,或者您是说您正在向该网站发送GET请求URL除了在浏览器中打开以外,还有某种方式吗?

答案 1 :(得分:0)

我正在回应自己(部分),我希望这可以帮助别人。

根据Uber ouath2指南,您必须向用户明确显示他们必须进行交互以放置其电子邮件帐户和密码的页面。当他们在“登录”中执行clic时,他们会被重定向到授权页面,最后,当他们接受信息访问协议时,uber会重定向到您指定的uri,最后是授权代码。

然而,我的情况不同,也许我需要提出另一个问题,因为我需要的是使用我自己的超级帐户上的注册超级应用访问我自己的信息,我需要自动化oauth2验证过程。我的意思是,这需要一个自动化的过程,我不会在那里与超级协议信息声明进行交互:我需要以自动方式发送我的客户端ID和所有必需的数据并检索授权代码。