我已经向Google Dev Advocate寻求帮助,因为我正在努力在我的Google Actions应用上实施帐户关联,他向我发送了一篇文档链接,该文章已经阅读并建议我也咨询Stackoverflow.我已经完成了第二个建议,并努力找到我的问题的确切答案,我已经在这里链接到doc文章,添加我的所有查询并将其发送回Dev Advocate,希望得到更多的澄清特别是提醒一下,关于该主题的完整新手可以阅读文档,并且不应该给予任何理由.
这篇文章我指的是https://developers.google.com/actions/identity/account-linking
我的疑问如下:
使用OAuth实施帐户关联时,您必须拥有OAuth端点
所以我现在对应该放在Aiuthorization URL和Token URL中的内容非常困惑 - 为什么不以更基本和清晰的方式记录这些内容?我还读过它需要通过HTTPS提供服务,如果您正在本地和宠物项目上工作,这不是商业性的,您将无法支付HTTPS费用?
如果您的应用支持无缝帐户关联
将以下重定向URI列入白名单:https://oauth-redirect.googleusercontent.com/r/
在展开的OAuth 2.0表单中,使用您的OAuth 2.0客户端配置填写字段.填写范围时,请确保它们以空格分隔.
打开Google应用,然后转到"发现"标签.
调用您的应用.由于这是第一次使用您的Google帐户调用该应用,因此助理会通知您必须关联您的帐户.
除了这些问题,我还有以下内容:
谢谢,请记住文档应该适合每个人!
google-authentication google-oauth actions-on-google dialogflow-es
我想用Dialogflow和Google智能助理以及Google Transactions API创建一个聊天机器人,以便用户订购一些商品.现在我的代理包含以下四个意图:
Default Welcome Intent (文字回复:你好,你想买一个巧克力盒吗?)Default Fallback IntentInt3 (培训短语:"是的,我想登录",履行:启用webhook)Int4(事件:actions_intent_SIGN_IN,履行:启用webhook)我使用Dialogflow Json而不是Node.js将我的代理与Transactions API连接起来.我实现了所有必要的步骤来设置Account Linking为Actions on Google以Auth0作为是在帖子中描述,如下面的:
https://productforums.google.com/forum/#!topic/dialogflow/omr_2iZXLxw;context-place=forum/dialogflow
https://www.jovo.tech/blog/google-action-account-linking-auth0/
因此,现在我在对话期间询问用户手机Google智能助理 "你想登录吗?" 然后用户回答"是的,我想登录"哪个触发器Int3.在这种情况下,从我的后端通过webhook我发送以下json:
{
"payload": {
"google": {
"expectUserResponse": true,
"isSsml": false,
"noInputPrompts": [],
"systemIntent": {
"data": {
"@type": "type.googleapis.com/google.actions.v2.SignInValueSpec",
"optContext": "To make the order easier"
},
"intent": "actions.intent.SIGN_IN"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,这会使以下窗口出现在用户的屏幕上:登录窗口
所以我正在按下LOG IN WITH GOOGLE并选择我的一个Gmail帐户.但是,我在Google智能助理上收到以下错误:Sorry, something went wrong. Please …
我目前正在尝试使用Google Home Action对Google帐户进行身份验证,并从凭据中检索授权码.我不想要访问令牌,而是授权代码.
我查看过此帖并发现Google已更新其政策,不再允许将自己的OAuth端点用于链接授权代码流的帐户:
使用OAuth实施帐户关联时,您必须拥有OAuth端点
话虽如此,
我正在尝试使用(DialogFlow或API.ai和google操作)开发的我的nodejs Google智能助理应用程序实施oauth2身份验证.
所以我按照这个答案.但我总是得到"看起来你的测试oauth帐户尚未链接."错误.当我尝试打开调试选项卡上显示的URL时,它显示500个损坏的URL错误.
Dialogflow fullfillment
index.js
'use strict';
const functions = require('firebase-functions'); // Cloud Functions for Firebase library
const DialogflowApp = require('actions-on-google').DialogflowApp; // Google Assistant helper library
const googleAssistantRequest = 'google'; // Constant to identify Google Assistant requests
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
console.log('Request headers: ' + JSON.stringify(request.headers));
console.log('Request body: ' + JSON.stringify(request.body));
// An action is a string used to identify what needs to be done in fulfillment
let action = request.body.result.action; // https://dialogflow.com/docs/actions-and-parameters
// Parameters …Run Code Online (Sandbox Code Playgroud) node.js google-oauth google-oauth2 actions-on-google dialogflow-es