当前位置: 首页 > 知识库问答 >
问题:

如何使用OAuth访问令牌调用Dialogflow Rest API

荣声
2023-03-14

我已经在google控制台中创建了项目,启用Dialogflow API创建的OAuth v2凭据使用此凭据我调用了access token API来生成令牌

https://accounts.google.com/o/oauth2/v2/auth?
 scope=https://www.googleapis.com/auth/dialogflow&
 access_type=offline&
 include_granted_scopes=true&
 response_type=code&
 state=state_parameter_passthrough_value&
 redirect_uri=http://localhost&
 client_id= **i placed client id here**

我收到了访问令牌并将其传递给Dialog flow API

https://dialogflow.googleapis.com/v2/projects/**PROJECT-ID**/agent/sessions/123456:detectIntent
Header
Content-Type : application/json; charset=utf-8
Authorization : Bearer **ACCESS_TOKEN**

Body
{
  "query_input": {
    "text": {
      "text": "I know french",
      "language_code": "en-US"
    }
  }
}

但我还是遇到了这个错误

“error”:{“code”:401,“message”:“请求的身份验证凭据无效。应为OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。请参阅https://developers.google.com/identity/sign-in/web/devconsole-project.",…}

我不能确定我哪里做错了

请帮忙提前谢谢

共有1个答案

麻茂材
2023-03-14

我在api中传递的代码是OAuth代码(感谢John Hanley)

从OAuth Code生成访问令牌的API

Post : https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
{
  "code":"OAuth Code",
  "client_id":"Client ID",
  "client_secret":"Client Secret",
  "redirect_uri":"http://localhost",
  "grant_type":"authorization_code"
}

作为回应,您收到

Response
{
"access_token": "Token",
"expires_in": 3599,
"refresh_token": "Refresh Token",
"scope": "https://www.googleapis.com/auth/dialogflow",
"token_type": "Bearer"
}

在google API的头中传递此访问令牌

 类似资料:
  • 我正在使用Lusita的PHP Oauth库(https://github.com/Lusitanian/PHPoAuthLib)。 在用户在我的应用程序中获得授权后,我收到了访问令牌和访问令牌密钥的值。现在有了这些值,我想对API进行身份验证调用。如何使用Access Token、Access Token Secret以及Consumer Key和Consumer Secret的值进行调用?我不

  • 本文向大家介绍oauth 刷新访问令牌,包括了oauth 刷新访问令牌的使用技巧和注意事项,需要的朋友参考一下 示例 资源

  • null 很抱歉太啰嗦了。 提前谢了。

  • 我正在尝试为我的OneDrive业务帐户访问Microsoft图形应用程序。我在Azure目录中创建了一个应用程序。我能够进行身份验证,我正在获取访问令牌,但当尝试使用该访问令牌并使用此api时https://graph.microsoft.com/v1.0/me.我收到以下错误:“访问令牌验证失败。无效的受众。”我不知道我是否缺少访问图形应用程序的任何权限?

  • 我正在使用谷歌API Java客户端来管理从谷歌应用程序引擎访问谷歌驱动器API。 如何管理访问令牌过期?你怎么看这个策略: > 一旦我登录到web应用程序,我就会从刷新令牌中获得一个访问令牌,并将其存储在会话中。我必须如何创建一个谷歌凭据对象从刷新令牌存储在数据库? 谢了。

  • 我有一个Keycloak(独立)V1.9.4。最后在AWS实例上使用Wildfly 10安装安装程序,并尝试使用Keycloak(通过Keycloak的登录页面)和Twitter4j来验证Twitter用户,然后明显地让我的应用程序验证并查看用户的时间线等。 我已经配置了身份提供程序(Twitter)、领域和我的客户端应用程序。 我还在apps.Twitter.com上设置了一个Twitter应用