【发布时间】:2017-02-09 13:51:49
【问题描述】:
我正在尝试使用Cloud Resource Manager API 在 Google Cloud Platform 中创建一个新项目。 当我通过 API Explorer 使用它时一切正常,但是我不太明白如何在 API Explorer 之外将它用作 http 请求。
我这样运行请求:
curl -H "Content-Type: application/json" -X POST -d '{"name": "project example","projectId": "my-project-example-1234"}' https://cloudresourcemanager.googleapis.com/v1/projects?fields=response&key={MY_APY_KEY}
回复:
{
"error": {
"code": 401,
"message": "The request does not have valid authentication credentials.",
"status": "UNAUTHENTICATED"
}
}
文档说这个请求是requires an OAuth scope,这让我感到困惑。 阅读文档时,我无法理解在向其余 API 发出 http 请求时如何通过 URL 传递所需的 OAuth 范围之一,我只是假设这是我所缺少的。
【问题讨论】:
-
在 OAuth 身份验证期间传递范围,而不是随后使用凭据:cloud.google.com/docs/authentication#oauth_scopes 和 cloud.google.com/resource-manager/docs/authorizing。
-
我假设 curl 请求只是为了测试:你想使用什么目标语言?您是打算代表最终用户创建项目,还是希望以自己的帐户作为所有者来创建项目?
-
@BrettJ。你明白了。我正在使用 Go,我会代表我的最终用户创建项目,而不是像我可以在此处找到的所有示例那样的默认帐户。
-
Go 不是我的强项,但发布了一个答案,其中包含一个示例项目的交叉链接,可能会让你走得更远。
标签: google-app-engine google-api google-oauth google-cloud-platform