使用Node.js和Google Cloud数据存储开始使用教程时出现令牌错误

我正在用google appengine,node.js和socket.io构build一个webapp,而且我正在尝试设置一个google计算实例来使用本教程之后的google云数据存储api。 到目前为止,我已经完成了第1步和第2步,但是在本地运行下载的adams.js文件时,我得到了以下结果:

Error: No access or refresh token is set. 

我试过的东西:

  • gcloud身份validationlogin(这logging我在谷歌,但没有设置我的令牌本地)
  • 改变我出口我的DATASTORE_SERVICE_ACCOUNT和DATASTORE_PRIVATE_KEY_FILE值的方式,作为string,纯文本等
  • logging我的凭据在错误之前(我肯定缺less一个令牌)
  • 创build一个新的服务帐户,并重新进行关键的创build步骤
  • 运行curl“ 元数据/ computeMetadata / v1 /实例/服务帐户/默认/令牌 ”-D“元数据风味:谷歌”获取更多信息。

该命令给了我这个:

 <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html> 

所以我肯定错过了一个令牌,但由于某种原因,我无法弄清楚我该如何得到它。 或者当我的应用程序部署并需要在线访问API时,我需要将其存储在哪里。 感觉这应该是一件很容易find的事情,但是由于某种原因,我正在阅读的所有文档都将我引入墙壁。 任何帮助都是极好的。

如果您的代码在Google Compute Instance上运行,并且实例具有正确的作用域,则不需要设置任何环境variables。

您可以通过查看Developers Console中的实例或询问元数据服务器来确认范围:

 curl http://metadata/computeMetadata/v1/instance/service-accounts/default/scopes -H "Metadata-Flavor: Google" 

要使用Cloud Datastore, datastoreuserinfo.email作用域都必须存在。