我有一个节点应用程序,我正在尝试使用谷歌语言API。我想将环境变量GOOGLE_APPLICATION_CREDENTIALS设置为同一目录中的json文件(同步到package.json和app.js)。
我在我的app.js文件中尝试过process.env.GOOGLE_APPLICATION_CREDENTIALS = "./key.json";
(使用快递),但它无效。我也试过把"GOOGLE_APPLICATION_CREDENTIALS":"./key.json"
放在我的package.json中,但是效果不好。当我在终端export GOOGLE_APPLICATION_CREDENTIALS="./key"
中运行时它会工作。
这是错误消息:
ERROR: Error: Unexpected error while acquiring application default credentials: Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.
任何提示都表示赞赏,谢谢!
您设置的GOOGLE_APPLICATION_DEFAULT环境变量由google客户端库访问 - 它不会使用相对路径,您需要设置绝对路径。
在互联网上阅读有关此问题的阅读材料后,解决此问题的唯一方法是为节点执行声明环境变量:
GOOGLE_APPLICATION_CREDENTIALS="./key.json" node index.js
因为我能够从我的服务器控制台打印令牌,但是当我运行节点应用程序时,库无法检索系统环境值,但设置变量以便执行它能够检索值。
可能是您的操作系统中的环境变量未设置。例如,在Linux中,您通常必须在执行应用程序的终端中设置GOOGLE_APPLICATION_CREDENTIALS。
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
你有另一个选择是通过代码传递json路径。 documented这个过程使用Node.js和云存储。