如何在新的对话流中访问请求对象 API
How to access request object in the new dialogflow API
在 google 请求对象的操作中,我有通过帐户链接设置的 accessToken
{
"user": {
"userId": "user_id",
"accessToken": "access_token",
"locale": "en-US",
"lastSeen": "2018-06-05T09:52:35Z",
"userStorage": "{\"data\":{}}"
},
etc
我的 firebase 函数允许在触发意图时在 Firebase 数据库中查找值。
import * as admin from 'firebase-admin'
import * as functions from 'firebase-functions'
import { dialogflow } from 'actions-on-google'
const dialogApp = dialogflow();
dialogApp.intent("request_value", async (conv, {devices}) => {
console.log(devices);
let device_name = devices;
const snapshot = await admin.database().ref(`/system/ecofarmTest/component/${device_name}/data`).orderByChild("timestamp").limitToFirst(1).once('value');
snapshot.forEach(function(childSnapshot) {
console.log("Test child timestamp " + childSnapshot.val().timestamp)
console.log("Test child value " + childSnapshot.val().value)
const value_object = childSnapshot.val();
conv.ask(`The ${device_name} is ${value_object.value}.\nWould you like to check anything else?`);
return;
})
});
export const receiveAssistantRequest = functions.https.onRequest(dialogApp);
在 API 更改之前,我新增了访问请求对象的方式。但是现在,我如何访问请求对象来获取accessToken呢?
完成帐户链接后,您可以使用
访问您的access_token
conv.user.access.token
我找到了方法:
let access_token = conv.request.user.accessToken
在 google 请求对象的操作中,我有通过帐户链接设置的 accessToken
{
"user": {
"userId": "user_id",
"accessToken": "access_token",
"locale": "en-US",
"lastSeen": "2018-06-05T09:52:35Z",
"userStorage": "{\"data\":{}}"
},
etc
我的 firebase 函数允许在触发意图时在 Firebase 数据库中查找值。
import * as admin from 'firebase-admin'
import * as functions from 'firebase-functions'
import { dialogflow } from 'actions-on-google'
const dialogApp = dialogflow();
dialogApp.intent("request_value", async (conv, {devices}) => {
console.log(devices);
let device_name = devices;
const snapshot = await admin.database().ref(`/system/ecofarmTest/component/${device_name}/data`).orderByChild("timestamp").limitToFirst(1).once('value');
snapshot.forEach(function(childSnapshot) {
console.log("Test child timestamp " + childSnapshot.val().timestamp)
console.log("Test child value " + childSnapshot.val().value)
const value_object = childSnapshot.val();
conv.ask(`The ${device_name} is ${value_object.value}.\nWould you like to check anything else?`);
return;
})
});
export const receiveAssistantRequest = functions.https.onRequest(dialogApp);
在 API 更改之前,我新增了访问请求对象的方式。但是现在,我如何访问请求对象来获取accessToken呢?
完成帐户链接后,您可以使用
访问您的access_tokenconv.user.access.token
我找到了方法:
let access_token = conv.request.user.accessToken