我猜你已经有一个Service Account 具有对项目/产品/资源的适当权限。如果没有,您可以在Creating and managing service accounts 中找到有关如何创建它的指南。
关于Bearer Token,您应该在Authenticating as a service account 中阅读。
如果您有具有适当访问权限的Service Account 和key.json,则可以使用Bearer token。
在GCP 控制台中,您可以使用命令打印默认令牌:
### for default SA
$ gcloud auth application-default print-access-token
### for other SA
$ gcloud auth print-access-token SA_NAME@PROJECT_ID.iam.gserviceaccount.com
更多详情请见this docs。
默认SA 的请求应如下所示:
curl -X POST /v2beta1/{parent=projects/*}/agent:train \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
对于特定的一次性请求,您应该使用以下示例:
curl -X POST /v2beta1/{parent=projects/*}/agent:train \
-H "Authorization: Bearer $(gcloud auth print-access-token <YourSAaccount>)"
SA 帐户可能类似于:<SAname>@<projectID>.iam.gserviceaccount.com
请记住,此 SA 必须处于活动状态。您可以使用命令激活 SA:
$ gcloud auth activate-service-account SA_NAME@PROJECT_ID.iam.gserviceaccount.com --key-file=/path/to/SAkey/key.json
###or using just key
$ gcloud auth activate-service-account --key-file=/path/to/SAkey/key.json
列出活动SA的命令是:
$ gcloud auth list
我从Dialogflow API 中随机选择了一个 POST。