谷歌预测 api javascript "message" : "Login Required"



我试图实现一个简单的JavaScript客户端,该客户端将使我能够利用Google预测;我试图通过Google预测模仿本教程中的身份验证(OAuth 2.0)。

这是我的代码:

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script>
        var _DATA       =   {
            "input": {
              "csvInstance": [
              "je m'appelle dali"
              ]
          }
      }
      var API_KEY     =    
      var OAUTHURL    =   'https://accounts.google.com/o/oauth2/auth?';
      var VALIDURL    =   'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
      var SCOPE       =   'https://www.googleapis.com/auth/prediction';
      var CLIENTID    =    
      var REDIRECT    =   'http://localhost:6666/GoogleOauth/GoogleOauth.html'
      var TYPE        =   'token';
      var TOKEN       =   '';
      var _url        =   OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
      function login() {
        var win         =   window.open(_url, "windowname1", 'width=800, height=600'); 
        var pollTimer   =   window.setInterval(function() { 
            try {
                console.log(win.document.URL);
                if (win.document.URL.indexOf(REDIRECT) != -1) {
                    window.clearInterval(pollTimer);
                    var url =   win.document.URL;
                    acToken =   gup(url, 'access_token');
                    tokenType = gup(url, 'token_type');
                    expiresIn = gup(url, 'expires_in');
                    win.close();
                    validateToken(acToken);
                }
            } catch(e) {
            }
        }, 500);
    }
    function validateToken(token) {
        $.ajax({
            url: VALIDURL + token,
            data: null,
            success: function(responseText){  
                getPrediction;
                loggedIn = true;
                $('#loginText').hide();
                $('#logoutText').show();
            },  
            dataType: "jsonp"  
        });
    }
    function getPrediction() {
        $.ajax({
            url: 'https://www.googleapis.com/prediction/v1.6/projects/coderscloud-1/trainedmodels/CC-1/predict?key=' + API_KEY,
            data: _DATA,
            success: function(resp) {
                alert(JSON.stringify(resp));
            },
            dataType: "jsonp"
        });
    }
        //credits: http://www.netlobo.com/url_query_string_javascript.html
        function gup(url, name) {
            name = name.replace(/[[]/,"\[").replace(/[]]/,"\]");
            var regexS = "[\#&]"+name+"=([^&#]*)";
            var regex = new RegExp( regexS );
            var results = regex.exec( url );
            if( results == null )
                return "";
            else
                return results[1];
        }
        function startLogoutPolling() {
            $('#loginText').show();
            $('#logoutText').hide();
            loggedIn = false;
        }
    </script>
</head>
<body>
    <a href='#' onClick='login();' id="loginText"> Click here to login </a>
    <a href="#" style="display:none" id="logoutText" target='myIFrame' onclick="myIFrame.location='https://www.google.com/accounts/Logout'; startLogoutPolling();return false;"> Click here to logout </a>
</body>
</html>

ajax调用确实返回

"error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

您缺少步骤。直到您拥有一个用户身份验证,您无法请求任何内容。

步骤3:弹出式的身份验证和授权

现在在"弹出窗口"中显示实际的身份验证对话框。重新定义 登录函数如下:

最新更新