我正在尝试编写一个将在 cron 作业上运行并将新表推送到 Google Maps Engine 的程序。
在与 OAuth 混淆了一段时间后,我了解到您可以验证Google Compute Engine (GCE) VM 以访问一组列表 API,而无需每次都登录。我认为这似乎是一个很好的解决方案,所以我开始修改它。
我想我已经正确设置了所有东西,但是我一定缺少一些东西,因为我无法从机器发出读取或写入请求。我用这个调用实例化了机器:
gcloud compute instances create <INSTANCE_NAME> --scopes https://www.googleapis.com/auth/mapsengine
我通过上面链接的文档页面(元数据/computeMetadata/v1......)中概述的请求来请求令牌。
但是,当我向 Maps Engine API 发出请求时,我收到一条错误消息,提示我没有读取器/写入器访问权限(取决于我正在进行的调用)。
当我实例化虚拟机时,我使用了正确的开发者控制台项目,其中包括对 Maps Engine API 的访问。
我认为问题可能是我的开发者项目不知何故不知道我的 Maps Engine 帐户,即使它都在同一个 Google 帐户下。我之所以这么认为,是因为当我尝试阅读我的活动地图引擎项目时,我没有得到任何结果(如 0)。该请求通过了,但它只是空着回来。但是,当我请求有关特定地图的详细信息时,我收到 noReaderAccess 错误。
感谢您的任何帮助。
编辑 不能以这种方式对 Maps Engine API 进行身份验证吗?我在此页面底部附近找到了别名范围列表,并且我认为其余的范围 API 没有别名。实际上这些是唯一受支持的 API 吗?