gapi.auth.authorize"无法读取属性'授权'未定义"

时间:2017-07-24 14:56:39

标签: typescript google-api gapi

我正在运行此代码,有些时候我会收到错误,其他人则不会,我无法理解为什么。

let promiseLogIn = new Promise(function(reject,resolve){
  gapi.auth.authorize(authData , function(response) {
      var authButton = document.getElementById('auth-button');
      if (response.error) {
        console.log("AuthBad");
        resolve();
        authButton.hidden = false;
      }
      else {
        console.log("AuthGood");
        reject();
        authButton.hidden = true;
      }
    });
  });

我在我的html文件中加载lib,如下所示:

<script src="https://apis.google.com/js/client.js?onload=authorize"></script>
<script src="sources/scripts/dist/bundle.js"></script>

其中bundle.j是我拥有所有已编译的ts文件的地方。

1 个答案:

答案 0 :(得分:0)

您可能会收到此错误,因为您在范围内没有auth2库。要将库添加到Google范围,Google的示例文档鼓励使用gapi.load()方法加载新包。那么,您可以在这里做到:

let promiseLogIn = new Promise(function(reject,resolve){
  gapi.load('auth2', function(){
    gapi.auth.authorize(authData , function(response) {
      var authButton = document.getElementById('auth-button');
      if (response.error) {
        console.log("AuthBad");
        resolve();
        authButton.hidden = false;
      }
      else {
        console.log("AuthGood");
        reject();
        authButton.hidden = true;
      }
    });
  });
});