Добрый день. Возникла проблема. Разрабатываем сейчас телеграмм бота на PHP, возникла необходимость выгружать данные из Google-таблицы в бота. Для этой выгрузки прекрасно подошел node.js, но теперь встала проблема в том, что нужно полученный массив данных обратно передать в PHP, была предпринята попытка загружать полученные данные в текстовый файл и потом в PHP от туда забирать данные. Но при тестировании бота возникает проблема, почему JS-скрипт не срабатывает (срабатывает только если напрямую запускать php-файл в терминале сервера). Да и вообще хранить данные в txt как-то не правильно. Поэтому хотелось бы передать из js в PHP массив, но к сожалению понятия не имею как можно это сделать. Для запуска скрипта js используем функцию shell_exec. Вот куски кода:
$file = "JSON/sheets.txt";
$table = 'copyright';
$result = shell_exec("node sheets.js $file $table");//выполнение файла получения из google-таблиц нужных данных.
$result = file_get_contents($file); // при тестирование бота, он считывает этот файл.
auth.authorize((err) => {
if (err) {
console.error("Ошибка авторизации:", err);
return;
}
/*Создание подключения */
const sheets = google.sheets({ version: "v4", auth: auth });
/*Получение данных из таблицы */
sheets.spreadsheets.values.batchGet(
{
spreadsheetId: spreadsheetId,
majorDimension: "COLUMNS",
ranges: range,
auth: auth,
},
(err, response) => {
//Обработка данных из таблицы
if (err) {
console.log("Ошибка:" + err);
return;
}
const valueRanges = response.data.valueRanges;
let messageText = 'Ваши заявки:';
valueRanges[0].values[0].map((_, index) => {
let tempText = '';
let date = 'Дата:';
let name = '#Имя:';
let text = '#Обращение:';
tempText = tempText + date + valueRanges[0].values[0][index];
tempText = tempText + name + valueRanges[1].values[0][index];
tempText = tempText + text + valueRanges[2].values[0][index] + "\n";
messageText += tempText;
});
const pathToFile = argv[2]; //переменная из php
fs.writeFileSync(pathToFile, messageText);
}
);
});
})
Необходимо PHP передать переменную messageText.