piz*_*zza 2 google-authentication google-oauth google-cloud-platform
我是新手。我想在我的本地机器上使用这个 API
它适用于带有“尝试此 API”的页面
但是,有没有办法在我的本地机器上使用它?我展开面板,我可以看到 curl 命令
curl \
'https://appengine.googleapis.com/v1/apps/[APPSID]/services/[SERVICESID]/versions/[VERSIONSID]/instances?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
Run Code Online (Sandbox Code Playgroud)
但是,目前我得到“权限被拒绝”
什么是 [YOUR_API_KEY] 和 [YOUR_ACCESS_TOKEN] ?我如何获得它们?
我是 GCP 的新手,请告诉我步骤并指导我找到适当的参考资料。我已经阅读了一些文档,但我现在无法理解它们。谢谢!
您不再需要 API 密钥。这是 Google API 的遗留功能,仅提供访问令牌就足够了。
在命令行中你可以这样做
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" https://....
Run Code Online (Sandbox Code Playgroud)
所有 Google Cloud API 均符合访问令牌身份验证。很少有仍然符合 API 密钥的要求。
关于 APIKeys API
该 API 已发布测试版,现已关闭。至少是文档部分。我不知道这个 API 是否稳定或可能会发生变化。您可以为每个 API 创建一个 API 密钥,如下所示(与 Bartosz Pelikan 答案非常相似)
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X POST https://apikeys.googleapis.com/v1/projects/PROJECT_ID/apiKeys
Run Code Online (Sandbox Code Playgroud)
可以看到,我复用了access token认证模式
最快的方法是使用 Cloud Shell:
gcloud projects list
# save you project id
PROJECT_ID="YOURS_PROJECT_ID"
Run Code Online (Sandbox Code Playgroud)
ACCESS_TOKEN=$(gcloud auth print-access-token)
Run Code Online (Sandbox Code Playgroud)
API_KEY=$(curl -X POST https://apikeys.googleapis.com/v1/projects/$PROJECT_ID/apiKeys?access_token=$ACCESS_TOKEN | jq -r ".currentKey")
Run Code Online (Sandbox Code Playgroud)
echo $ACCESS_TOKEN
echo $API_KEY
Run Code Online (Sandbox Code Playgroud)
要首先在本地机器上运行上述命令,您需要使用命令进行身份验证gcloud auth login并按照说明进行操作。
或者,可以从控制台读取或创建 api 密钥转到Navigation Menu-> APIs & Services->Credentials然后单击CREATE CREDENTIALS-> API Key。
通过阅读文档(点击旁边的问号Credentials),我们可以阅读:
[YOUR_API_KEY] - “包括一个 API 密钥来识别您的项目,用于验证启用和跟踪请求配额。”[YOUR_ACCESS_TOKEN] - “包括访问(持有者)令牌,以识别使用您的客户端 ID 完成 OAuth 流程的用户。”| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |