راهنمای جامع API گوگل درایو در جاوا اسکریپت
تصور کنید بتوانید فایلها را به صورت خودکار در فضای ابری آپلود کنید. یا گزارشهای روزانه را مستقیماً در یک Google Sheet ذخیره نمایید. اینها تنها بخشی از قدرت فوقالعاده API گوگل درایو است. اگر شما یک توسعهدهنده جاوا اسکریپت هستید، این راهنما دروازهای برای ورود به دنیای اتوماسیون و مدیریت هوشمند فایلهاست.
در این مقاله جامع، به صورت قدمبهقدم یاد میگیریم چگونه از API گوگل درایو در محیط Node.js استفاده کنیم. از احرازهویت اولیه تا انجام عملیات پیچیده روی فایلها، همه چیز را پوشش خواهیم داد. بیایید شروع کنیم! ⚡️
API گوگل درایو چیست؟
به زبان ساده، API گوگل درایو یک رابط برنامهنویسی است. این رابط به اپلیکیشنهای شما اجازه میدهد تا با گوگل درایو صحبت کنند. شما میتوانید از طریق کد، فایلها را بخوانید، بنویسید، ویرایش کنید یا به اشتراک بگذارید. این قابلیت، امکان ساخت ابزارهای قدرتمند و خودکار را فراهم میکند.
چرا از API گوگل درایو با جاوا اسکریپت استفاده کنیم؟
استفاده از این API در پروژههای جاوا اسکریپت (بهویژه Node.js) مزایای بیشماری دارد. این کار به شما کمک میکند تا فرآیندهای دستی را حذف کرده و کارایی را افزایش دهید. در ادامه به برخی از مهمترین مزیتهای آن اشاره میکنیم:
- 🚀 اتوماسیون فرآیندها: به طور خودکار از دادههای مهم نسخه پشتیبان تهیه کنید. گزارشها را بدون دخالت انسان تولید و ذخیره نمایید.
- 💾 مدیریت متمرکز فایل: یک سیستم مدیریت محتوا (CMS) سفارشی بسازید. فایلهای کاربران را به شکلی امن و سازمانیافته مدیریت کنید.
- 🔗 یکپارچهسازی آسان: اپلیکیشن خود را به راحتی با سایر سرویسهای گوگل مانند Sheets و Docs متصل کنید. این کار یک اکوسیستم یکپارچه ایجاد میکند.
- 📊 پردازش دادههای حجیم: فایلهای بزرگ را مستقیماً از سرور خود به گوگل درایو منتقل کنید. دیگر نگران محدودیتهای آپلود نباشید.
- 🔒 کنترل دسترسی دقیق: سطح دسترسی کاربران به فایلها و پوشهها را از طریق کد مدیریت کنید. امنیت دادهها را به سادگی افزایش دهید.
کاربردهای عملی API گوگل درایو
شاید بپرسید این API در دنیای واقعی چه کاربردهایی دارد. در اینجا چند سناریوی عملی را بررسی میکنیم که قدرت این ابزار را نشان میدهد:
- 📄 سیستم مدیریت اسناد: ساخت اپلیکیشنی که فاکتورها، قراردادها یا رزومهها را دریافت کرده و به صورت خودکار در پوشههای مشخصی در گوگل درایو ذخیره کند.
- 🖼️ گالری تصاویر و ویدئو: وبسایتی که به کاربران اجازه میدهد فایلهای چندرسانهای خود را آپلود کنند و این فایلها مستقیماً روی گوگل درایو ذخیره شوند.
- 📈 داشبورد گزارشگیری: ابزاری که دادههای تحلیلی را از منابع مختلف جمعآوری میکند. سپس این دادهها را در یک Google Sheet برای تحلیل بیشتر ذخیره میکند.
- 📚 پلتفرم آموزشی آنلاین: سیستمی که تکالیف دانشجویان را دریافت کرده و آنها را برای بررسی توسط اساتید در پوشههای شخصی هر دانشجو قرار میدهد.
راهنمای قدمبهقدم: شروع کار با API گوگل درایو
حالا زمان آن رسیده که وارد بخش عملی شویم. در این بخش، تمام مراحل را از ابتدا تا انتها طی خواهیم کرد.
پیشنیازها
قبل از شروع، مطمئن شوید موارد زیر را آماده کردهاید:
- نصب Node.js و NPM روی سیستم شما.
- یک حساب کاربری گوگل (Google Account).
گام اول: راهاندازی پروژه در Google Cloud
برای استفاده از هر API گوگل، ابتدا باید یک پروژه در کنسول گوگل کلود ایجاد کنید.
- وارد Google Cloud Console شوید.
- یک پروژه جدید بسازید یا یکی از پروژههای موجود را انتخاب کنید.
- از منوی کناری به بخش
APIs & Services > Libraryبروید. Google Drive APIرا جستجو کرده و آن را فعال (Enable) کنید.- همین کار را برای
Google Sheets APIنیز انجام دهید (در ادامه به آن نیاز خواهیم داشت).
گام دوم: احرازهویت (Authentication)
گوگل باید بداند که اپلیکیشن شما مجاز به دسترسی است. ما از روش Service Account استفاده میکنیم که برای ارتباطات سرور-به-سرور ایدهآل است.
- در بخش
APIs & ServicesبهCredentialsبروید. - روی
Create Credentialsکلیک کرده وService Accountرا انتخاب کنید. - یک نام برای اکانت سرویس خود انتخاب کنید و نقش (Role) آن را
Project > Editorقرار دهید. - پس از ایجاد اکانت، وارد آن شوید و به تب
Keysبروید. - روی
Add Key > Create new keyکلیک کنید. نوع کلید راJSONانتخاب کرده و آن را دانلود نمایید. - فایل JSON دانلود شده را به
credentials.jsonتغییر نام داده و در ریشه پروژه خود قرار دهید. این فایل حاوی کلیدهای دسترسی شماست. آن را امن نگه دارید! 🤫
مرحله نهایی احرازهویت:
اکانت سرویس شما یک آدرس ایمیل منحصربهفرد دارد (در فایل credentials.json و کلید client_email موجود است). برای اینکه این اکانت به فایلهای شما دسترسی داشته باشد، یک پوشه در گوگل درایو خود بسازید و آن را با این آدرس ایمیل به اشتراک بگذارید (با سطح دسترسی Editor).
گام سوم: آمادهسازی پروژه Node.js
یک پوشه جدید برای پروژه خود بسازید. سپس ترمینال را در آن باز کرده و دستورات زیر را اجرا کنید:
# مقداردهی اولیه پروژه
npm init -y
# نصب کتابخانه رسمی گوگل
npm i googleapis
یک فایل به نام index.js در پروژه ایجاد کنید.
گام چهارم: اولین ارتباط با API (لیست کردن فایلها)
زمان کدنویسی فرا رسیده است. کد زیر را در فایل index.js خود وارد کنید. این کد به گوگل درایو متصل شده و لیست فایلهای موجود در پوشهای که به اشتراک گذاشتهاید را نمایش میدهد.
const { google } = require('googleapis');
const credentials = require('./credentials.json');
// تعریف سطح دسترسی (Scope)
const scopes = ['https://www.googleapis.com/auth/drive'];
// ایجاد یک کلاینت احرازهویت شده
const auth = new google.auth.JWT(
credentials.client_email,
null,
credentials.private_key,
scopes
);
// ساخت یک نمونه از سرویس درایو
const drive = google.drive({ version: 'v3', auth });
// یک تابع async برای اجرای عملیات
async function listFiles() {
try {
const res = await drive.files.list({
pageSize: 10,
fields: 'nextPageToken, files(id, name, webViewLink)',
orderBy: 'createdTime desc'
});
const files = res.data.files;
if (files.length) {
console.log('فایلها:');
files.map((file) => {
console.log(`${file.name} (${file.id}) - ${file.webViewLink}`);
});
} else {
console.log('هیچ فایلی یافت نشد.');
}
} catch (error) {
console.error('خطا در ارتباط با API:', error);
}
}
listFiles();
برای اجرای کد، دستور node index.js را در ترمینال وارد کنید. اگر همه چیز درست باشد، باید لیست فایلهای خود را ببینید.
عملیات پیشرفته: کار با فایلها و Google Sheets
اکنون که ارتباط اولیه برقرار شد، میتوانیم کارهای جذابتری انجام دهیم.
انتقال داده به Google Sheets
فرض کنید میخواهیم لیست فایلهای دریافتی را در یک فایل Google Sheets جدید ذخیره کنیم.
ابتدا یک نمونه از سرویس sheets میسازیم:
const sheets = google.sheets({ version: 'v4', auth });
سپس یک تابع برای ایجاد و پر کردن شیت مینویسیم:
async function exportFilesToSheet(files) {
try {
// 1. ایجاد یک Spreadsheet جدید
const spreadsheet = await sheets.spreadsheets.create({
resource: {
properties: {
title: 'لیست فایلهای درایو',
}
}
});
const spreadsheetId = spreadsheet.data.spreadsheetId;
console.log(`فایل شیت با شناسه ${spreadsheetId} ایجاد شد.`);
// 2. آمادهسازی دادهها برای درج
const sheetData = [['نام فایل', 'لینک مشاهده']];
files.forEach(file => {
sheetData.push([file.name, file.webViewLink]);
});
// 3. افزودن دادهها به شیت
await sheets.spreadsheets.values.append({
spreadsheetId: spreadsheetId,
range: 'A1',
valueInputOption: 'USER_ENTERED',
resource: {
values: sheetData,
},
});
console.log('دادهها با موفقیت به شیت اضافهشدند.’);
} catch (err) {
console.error(‘خطا در عملیات شیت:’, err);
}
}
بخش ویژه: ثبتنام و شروع پروژه با API شخصیسازی شده
اگر برای پیادهسازی این پروژهها به زیرساخت قدرتمند یا APIهای اختصاصی نیاز دارید، میتوانید از سرویسهای مدیریت شده ما استفاده کنید. برای شروع، مراحل زیر را دنبال کنید:
- به وبسایت ما مراجعه کنید.
- در فرم ثبتنام اطلاعات خود را وارد نمایید.
- از طریق آدرس مستقیم p.api.ir اقدام به ثبتنام و دریافت کلیدهای اختصاصی کنید.
- پروژه خود را با سرعت و امنیت بالا لانچ کنید. 🚀
نتیجهگیری و جمعبندی
استفاده از API گوگل درایو در جاوا اسکریپت یک مهارت ارزشمند برای هر توسعهدهندهای است. در این مقاله یاد گرفتیم که چگونه با استفاده از Node.js و روش امن Service Account، به فایلهای خود در فضای ابری دسترسی پیدا کنیم. همچنین دیدیم که چگونه میتوان دادهها را بین درایو و گوگل شیت جابهجا کرد.
آینده توسعه نرمافزار به سمت اتوماسیون حرکت میکند. با یادگیری این ابزارها، شما یک گام از دیگران جلوتر خواهید بود. پیشنهاد میکنیم همین حالا کدهای بالا را در یک پروژه تست کنید. اگر سوالی در این زمینه دارید یا با مشکلی روبرو شدید، حتماً در بخش نظرات برای ما بنویسید. مشتاقانه منتظر شنیدن تجربیات شما هستیم! 😊

