【问题标题】:Dialogflow Bearer Token AnalysisDialogflow 承载令牌分析
【发布时间】:2021-08-04 07:41:20
【问题描述】:

如何获取 Dialogflow v2beta1 API 调用的不记名令牌?

我想集成 Dialogflow API,所以现在我什至无法在没有不记名令牌的情况下在邮递员中测试 API。为了测试,我在 GCP 项目中为我的代理生成了 API 密钥,但我没有找到任何获取不记名令牌的解决方案。

POST https://dialogflow.googleapis.com/v2beta1/[PARENT]/intents?key=[YOUR_API_KEY] HTTP/1.1

Authorization: Bearer [YOUR_ACCESS_TOKEN] Accept: application/json Content-Type: application/json

【问题讨论】:

    标签: dialogflow-es


    【解决方案1】:

    我猜你已经有一个Service Account 具有对项目/产品/资源的适当权限。如果没有,您可以在Creating and managing service accounts 中找到有关如何创建它的指南。

    关于Bearer Token,您应该在Authenticating as a service account 中阅读。

    如果您有具有适当访问权限的Service Accountkey.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 帐户可能类似于:&lt;SAname&gt;@&lt;projectID&gt;.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。

    【讨论】:

      猜你喜欢
      • 2018-01-10
      • 2014-10-11
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      相关资源
      最近更新 更多