Как связать Google Таблицы с Google Dialogflow для извлечения данных из таблиц?

Я создаю чат-бота с Dialogflow, для которого мне нужно связать Google Таблицы, которые будут действовать как бэкэнд для извлечения данных из листов и отображения в чат-боте при срабатывании намерения. Как мне сделать это, любое руководство или документация, которые могут помочь?


person Sahil    schedule 31.07.2019    source источник


Ответы (2)


Если вы используете NodeJS в качестве веб-перехватчика,

Вы можете использовать электронную таблицу Google для хранения и получения данных,

const GoogleSpreadsheet = require('google-spreadsheet');
const sheets = new GoogleSpreadsheet(process.env.sheetid);
// sheetid can be found from sheet URL
const config = {
    client_email: process.env.client_email,
    private_key: process.env.private_key
}
// config detail you need to get from your service account
// share your client_email in your sheet with read and write permission
sheets.useServiceAccountAuth(config, () => {
    sheets.getInfo(async (err, info) => {
        sheet = info.worksheets
        // same way you will be getting your sheet data in sheet variable
        await addRows(sheet, 0, rowData)
        // rowData => your data
    })
});

function addRows(sheet, index, data) { // index is your sheet tab index
    return new Promise((resolve, reject) => {
        sheet[index].addRow(data, (err, row) => {
            if (err) return reject(err)
            resolve(row)
        })
    })
}
person Nikhil Savaliya    schedule 01.08.2019

Я делаю это с помощью Vodo Drive, хотя на данный момент только для действий.

Убедитесь, что вы понимаете, как использовать Google OAuth, чтобы получить от пользователя разрешение на доступ к своим таблицам с помощью API Таблиц. Это первое, что вам нужно понять, прежде чем вы сможете сделать это с помощью Dialogflow.

Самая большая проблема, с которой вы столкнетесь при использовании Dialogflow для общей интеграции ботов, - это возможность узнать, какую учетную запись Google они используют (и что у вас есть токены OAuth). Если вы создаете для действий, у вас есть возможность использовать привязку учетных записей. Другие интеграции также могут передавать информацию о пользователе, но это не гарантируется.

person Prisoner    schedule 31.07.2019