无法使用Google的node.js客户端库

时间:2018-04-27 18:37:53

标签: node.js firebase

我正在尝试使用Google node.js client library提到的here通过JWT客户端生成访问令牌。

以下是我正在关注的代码段:

var google = require("googleapis");

// Load the service account key JSON file.
var serviceAccount = require("path/to/serviceAccountKey.json");

// Specify the required scope.
var scopes = [
  "https://www.googleapis.com/auth/firebase"
];

// Authenticate a JWT client with the service account.
var jwtClient = new google.auth.JWT(
  serviceAccount.client_email,
  null,
  serviceAccount.private_key,
  scopes
);

// Use the JWT client to generate an access token.
jwtClient.authorize(function(error, tokens) {
  if (error) {
    console.log("Error making request to generate access token:", error);
  } else if (tokens.access_token === null) {
    console.log("Provided service account does not have permission to generate access tokens");
  } else {
    var accessToken = tokens.access_token;

    // Include the access token in the Authorization header.
  }
});

但我不断收到此错误消息:

  

TypeError:无法读取未定义的属性“JWT”

任何人都知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:7)

26.0.0 node.js客户端版本开始,看起来该库正在使用命名导入。当我改变

时,代码可以正常工作
var google = require("googleapis");

var {google} = require("googleapis");

所以这看起来是Firebase的文档错误。