const { google } = require('googleapis'); const axios = require('axios'); const fs = require('fs'); // 1. 구글 인증 설정 const auth = new google.auth.GoogleAuth({ keyFile: 'your-service-account-key.json', // 다운로드한 JSON 키 scopes: ['https://www.googleapis.com/auth/drive.file'], }); const drive = google.drive({ version: 'v3', auth }); // 2. 아임웹 Webhook 수신 함수 (Express 예시) app.post('/imweb-webhook', async (req, res) => { const fileUrl = req.body.file_url; // 아임웹이 보내주는 파일 경로 const fileName = req.body.file_name; try { // 파일 스트림 가져오기 const response = await axios({ method: 'GET', url: fileUrl, responseType: 'stream', }); // 3. 구글 드라이브로 업로드 const fileMetadata = { name: fileName, parents: ['YOUR_FOLDER_ID'], // 업로드될 폴더 ID }; const media = { mimeType: response.headers['content-type'], body: response.data, }; const file = await drive.files.create({ resource: fileMetadata, media: media, fields: 'id', }); console.log('파일 업로드 성공 ID:', file.data.id); res.status(200).send('OK'); } catch (error) { console.error('에러 발생:', error); res.status(500).send('Error'); } });