相关疑难解决方法(0)

OAuth2和Google API:访问令牌到期时间?

我们有一个独立的Java应用程序(请参阅"安装应用程序":https://developers.google.com/accounts/docs/OAuth2)的定期运行,并使用谷歌API(从客户数据库/ LDAP更新一些信息/ ...) .

要访问Google API,我们会在配置文件中存储用户名和密码,这是一种安全风险,客户不喜欢这样做.因此,我们希望使用OAuth2长期访问令牌.

Google OAuth2访问令牌的默认到期时间是什么时候?

由于我们在应用程序中只有访问令牌,因此当访问令牌到期时,应用程序本身无法刷新它...

我个人认为在这种情况下OAuth2的实现不会带来任何重大好处,但让我们关注主要问题 - 默认的到期时间.

security google-api oauth-2.0 google-api-java-client google-oauth

56
推荐指数
2
解决办法
11万
查看次数

如何从网页访问Dialogflow V2 API?

我有一个网页,我想使用dialogflow chatbot.这是一个自定义聊天窗口,所以我不想使用一次点击集成.我可以使用javascript/ajax 访问聊天代理V1 API(通过在请求标头中传递客户端访问令牌).

但我不知道如何在V2 API中做到这一点.对话框流程文档对我来说并不清楚(我通过引用此链接设置了身份验证.我不知道如何继续进行).我也不熟悉谷歌云.因此,非常感谢一个工作样本或一步一步如何访问API指南.

nlp chatbot actions-on-google dialogflow-es

17
推荐指数
1
解决办法
2381
查看次数

Google Cloud Build 中的应用程序默认凭据

在我的代码中,我尝试从 Cloud Build 中的关联服务帐户收集应用程序默认凭据:

from google.auth import default

credentials, project_id = default()
Run Code Online (Sandbox Code Playgroud)

这在我的本地空间中工作得很好,因为我已经适当地设置了环境变量GOOGLE_APPLICATION_CREDENTIALS。但是,当在 Cloud Build 中执行此行(通过构建配置中的测试步骤)时,会引发以下错误:

google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. 
Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. 
For more information, please see https://cloud.google.com/docs/authentication/getting-started
Run Code Online (Sandbox Code Playgroud)

这让我很困惑,因为根据文档:

默认情况下,Cloud Build 使用特殊服务帐户代表您执行构建。此服务帐号称为 Cloud Build 服务帐号,当您在 Google Cloud 项目中启用 Cloud Build API 时,它会自动创建。 在这里阅读

如果未设置环境变量 GOOGLE_APPLICATION_CREDENTIALS,ADC 将使用附加到正在运行代码的资源的服务帐户。 在这里阅读

那么为什么默认调用无法访问 Cloud Build 服务帐户凭据呢?

python service-accounts google-cloud-platform dockerfile google-cloud-build

9
推荐指数
1
解决办法
5782
查看次数

如何使用 Javascript ajax 调用在 DialogFlow v2 上进行 http 调用

我在 DialogFlow 的官方网站上使用 Node.js 找到了这个示例,它运行良好,但我不知道如何将其集成到我的 Web 应用程序中。

我可以将它集成到我的其他 javascript jquery 代码中吗?在这里我需要运行 node index.js 但如果我与我的代码集成,我还需要这样做吗?

const projectId = 'xxx'; //https://dialogflow.com/docs/agents#settings
const sessionId = 'xxxxx';
const query = 'Hello';
const languageCode = 'en-US';

// Instantiate a DialogFlow client.
const dialogflow = require('dialogflow');
const sessionClient = new dialogflow.SessionsClient();

// Define session path
const sessionPath = sessionClient.sessionPath(projectId, sessionId);
console.log(sessionPath);
// The text query request.
const request = {
  session: sessionPath,
  queryInput: {
    text: {
      text: query,
      languageCode: languageCode,
    },
  },
};

// Send request …
Run Code Online (Sandbox Code Playgroud)

javascript google-cloud-datastore google-cloud-platform dialogflow-es

6
推荐指数
1
解决办法
7785
查看次数