我们有一个独立的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
我有一个网页,我想使用dialogflow chatbot.这是一个自定义聊天窗口,所以我不想使用一次点击集成.我可以使用javascript/ajax 访问聊天代理V1 API(通过在请求标头中传递客户端访问令牌).
但我不知道如何在V2 API中做到这一点.对话框流程文档对我来说并不清楚(我通过引用此链接设置了身份验证.我不知道如何继续进行).我也不熟悉谷歌云.因此,非常感谢一个工作样本或一步一步如何访问API指南.
在我的代码中,我尝试从 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
我在 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
chatbot ×1
dockerfile ×1
google-api ×1
google-oauth ×1
javascript ×1
nlp ×1
oauth-2.0 ×1
python ×1
security ×1