gapi.auth javascript命令未正确执行

时间:2014-10-30 22:26:09

标签: javascript oauth oauth-2.0 google-api google-api-client

我试图关注Google's developer tutorial的示例示例 使用更新的 chrome (版本38.0)

但似乎 gapi.auth函数从未达到过他们的回调

以下是演示它的代码示例:

<!doctype html>
<html>
  <head>
    <title>Google API Client test</title>
  </head>
  <body>
    here will be the use of Oauth 2.0
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>  
    <script>    
    googleApiClientReady = function() {    
    window.setTimeout(checkAuth, 1);  
    }
    function checkAuth() {    
      gapi.auth.authorize({
    client_id: 'XXX',
    scope: 'https://www.googleapis.com/auth/youtube',
    immediate: true
    }, handleAuthResult);
  }
  function handleAuthResult(authResult) {  
    if (authResult && !authResult.error) {
    alert('gapi.auth return successfully');
    } else {
    alert('gapi.auth return with error');
    }
  }
    </script> 
    <script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>
  </body>
</html>

当我在&#39; HandleAuthResult&#39;的2个可选警报中运行上述html + JS文件 - 时屏幕上显示 > - 意味着此函数未被&#39; gapi.auth.authorize&#39;

回调

有没有人设法正确使用这个库?

1 个答案:

答案 0 :(得分:0)

首先,您需要检查chrome是否阻止了您的弹出窗口。这是因为弹出式打开代码不在点击处理程序中。

然后你应该打开chrome的开发者控制台并检查&#34; Console&#34;错误标签。

另外,您应该在Google Developer Console中指定您的网页所在的域名和端口,如下所示:Google developer console - javascript origins

我能够登录谷歌并获得成功回拨 使用你的代码,但仅在删除&#34; immediate:true&#34;选项。 我不知道为什么,但我得到&#34; immediate_failed&#34;错误。