【问题标题】:actions on google, Oauth account Linking对 google 的操作、Oauth 帐户链接
【发布时间】:2019-03-20 17:33:10
【问题描述】:

我一直在尝试将助手操作连接到我的后端服务器 我正在使用我自己的 Oauth 服务器并按照说明进行操作 https://developers.google.com/actions/identity/oauth2?oauth=code 我正在为我的对话流事件意图使用 actions_intent_Sign_in(如 https://actions-on-google.github.io/actions-on-google-nodejs/classes/conversation_helper.signin.html) 当我使用我的操作登录时,我得到了我的服务器的登录窗口,我进行了帐户链接,我可以看到我在我的服务器上生成了令牌,但我在 (conv.user.access.token) 中找不到令牌)

这是我使用“google sdk 上的操作”的意图代码

'use strict';
var _ = require('lodash');

var path = require('path')
var express = require('express')
var http = require('http')
const bodyParser = require('body-parser');


var expressApp = express().use(bodyParser.json());

var server = http.createServer(expressApp).listen(3000)

const {
    dialogflow,
    SignIn
} = require('actions-on-google');


const app = dialogflow({
    debug: true,
    clientId: '7b4a6dfc-4b35-11e9-8646-d663bd873d93'
});

app.intent('Start Sign-in', conv => {
    conv.ask(new SignIn());
});

app.intent('Get Sign-in', (conv, params, signin) => {
    console.log("get sign in ");
    console.log(JSON.stringify(signin));
    if (signin.status === 'OK') {
        const access = conv.user.access.token 
        console.log("the access token is " + access);
        conv.ask('Great, thanks for signing in! What do you want to do next?');
    } else {
        conv.ask('I wont be able to save your data, but what do you want to do next?.');
    }
});

响应返回为

{"@type":"type.googleapis.com/google.actions.v2.SignInValue","status":"OK"}
the access token is undefined
Response {
  "status": 200,
  "headers": {
    "content-type": "application/json;charset=utf-8"
  },
  "body": {
    "payload": {
      "google": {
        "expectUserResponse": true,
        "richResponse": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Great, thanks for signing in! What do you want to do next?"
              }
            }
          ]
        }
      }
    }
  }
}

conv的用户对象只有这个数据

"user": {
    "raw": {
      "lastSeen": "2019-03-20T12:46:23Z",
      "locale": "en-US",
      "userId": "okdhyeGSk5tofgLjEepIUrA6mmewCESY8MjklZRPvQJgv6-uybfPobwdfgtrGZJ3bE2sM9ninhst"
    },
    "storage": {},
    "_id": "okdhyeGSk5tofgLjEepIUrA6mmewCESY8MjklZRPvQJgv6-uybfPobwdfgtrGZJ3bE2sM9ninhst",
    "locale": "en-US",
    "permissions": [],
    "last": {
      "seen": "2019-03-20T12:46:23.000Z"
    },
    "name": {},
    "entitlements": [],
    "access": {},
    "profile": {}
  }

我不知道在哪里可以找到访问/刷新令牌,或者是否需要从我错过的 oauth 服务器发送帖子

【问题讨论】:

  • 我如何获取客户端 ID,而不显示在操作页面中

标签: oauth-2.0 dialogflow-es actions-on-google account-linking


【解决方案1】:

所以我终于在 Google 支持团队的 Actions 的帮助下让它工作了

问题是我在另一个选项卡中登录了另一个 google 帐户,即使我将 AoG 和 dialogflow 代理连接到同一个帐户

尝试了所有使用隐身窗口,它可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    相关资源
    最近更新 更多