const express = require('express'); const { google } = require('googleapis'); const cors = require('cors'); const path = require('path'); const app = express(); app.use(cors()); app.use(express.static('public')); const auth = new google.auth.GoogleAuth({ keyFile: path.join(__dirname, 'service-account.json'), scopes: ['https://www.googleapis.com/auth/drive.readonly'], }); const drive = google.drive({ version: 'v3', auth }); const FOLDER_ID = '1Oo8EZf8bA-KLDElLBvhR1uA7K0-VbhoV'; // Your folder app.get('/photos', async (req, res) => { try { const response = await drive.files.list({ q: `'${FOLDER_ID}' in parents and mimeType contains 'image/'`, fields: 'files(id, name)', orderBy: 'createdTime desc', }); const photos = response.data.files.map(file => ({ id: file.id, name: file.name, url: `/image/${file.id}` })); res.json(photos); } catch (error) { console.error(error); res.status(500).json({ error: error.message }); } }); app.get('/image/:fileId', async (req, res) => { try { const fileId = req.params.fileId; const response = await drive.files.get({ fileId: fileId, alt: 'media' }, { responseType: 'stream' }); res.setHeader('Content-Type', response.headers['content-type'] || 'image/jpeg'); response.data.pipe(res); } catch (error) { res.status(500).send('Error'); } }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });