使用Google API客户端库在Chrome扩展程序中进行OAuth2身份验证

时间:2014-04-26 03:44:59

标签: google-chrome google-chrome-extension oauth oauth-2.0 google-api-client

我正在尝试构建一个Chrome扩展程序,通过使用Google API Client Libriary for javascript来访问其中执行OAuth 2身份验证请求的Google云端硬盘。我的扩展已在Google Developers Console中注册。

的manifest.json

"background": {
    "page": "background.html"
},

background.html

<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
<script type="text/javascript" src="google_auth/initiation.js"></script>

initiation.js

var CLIENT_ID = 'MY_CLIENT_ID';
var SCOPES = 'https://www.googleapis.com/auth/drive.file';

jQuery(window).load(function() {
   gapi.auth.authorize({
     client_id: CLIENT_ID,
     scope: SCOPES,
     immediate: false
  }, function(authResult) {
        if (authResult && !authResult.error) {
           window.alert('Auth was successful!');
        } else {
           window.alert('Auth was not successful');
        }
     }
   );
 });

当在浏览器中加载或重新加载扩展程序时,会出现一个弹出窗口,我收到来自Google的回复邮件:

这是一个错误。

错误:invalid_client

应用程序:MyExtension

实际上,我想知道是否为我的Chrome扩展程序选择Google API客户端库是正确的,并且我的实施中没有任何错误。

2 个答案:

答案 0 :(得分:2)

我没有足够的声誉来发表评论,但是如果你的init.js是逐字的话。您应该替换&#39; MY_CLIENT_ID&#39;和CLIENT_ID以及您在此处向Google注册应用时收到的客户ID [{3}}

它看起来像这样: 858545004388-tlfkq1hfdbuiductlb0qdvjds4s949gt.apps.googleusercontent.com

错误:invalid_client告诉你的是什么。

答案 1 :(得分:0)

  

Web身份验证协议使用HTTP功能,但Chrome应用   在app容器内运行;它们不会通过HTTP加载而不能加载   执行重定向或设置cookie。

使用Google身份https://developer.chrome.com/apps/app_identity