Действия в google, привязка аккаунта Oauth

Я пытался подключить действие помощника к моему внутреннему серверу. Я использую свой собственный сервер Oauth и следую инструкциям на https://developers.google.com/actions/identity/oauth2?oauth=code Я использую action_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.info("get sign in ");
    console.info(JSON.stringify(signin));
    if (signin.status === 'OK') {
        const access = conv.user.access.token 
        console.info("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, которое я пропустил

как получить идентификатор клиента, который не отображается на странице действий

Nikhil Savaliya 09.09.2019 17:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
551
1

Ответы 1

так что, наконец, мне удалось заставить его работать с помощью действий в команде поддержки Google.

проблема заключалась в том, что у меня была другая учетная запись Google, зарегистрированная на другой вкладке, хотя у меня был агент AoG и диалогового потока, связанный с той же учетной записью.

попробовал все, используя окно инкогнито, и это работает

Другие вопросы по теме