دليل إعداد Google Drive للنسخ الاحتياطي

العودة للإعدادات
1

إنشاء مشروع في Google Cloud Console

  1. اذهب إلى Google Cloud Console
  2. أنشئ مشروع جديد أو اختر مشروع موجود
  3. سجل اسم المشروع (مثال: Blood Bank Backup)
إذا لم يكن لديك حساب Google Cloud، ستحتاج إلى إنشاء واحد مجاناً.

2

تفعيل Google Drive API

  1. من القائمة الجانبية، اختر APIs & ServicesLibrary
  2. ابحث عن Google Drive API
  3. اضغط Enable لتفعيل الـ API

3

إعداد OAuth Consent Screen

  1. اذهب إلى APIs & ServicesOAuth consent screen
  2. اختر External (أو Internal إذا كان لديك Google Workspace)
  3. املأ المعلومات المطلوبة:
    • App name: Blood Bank Backup
    • User support email: بريدك الإلكتروني
    • Developer contact: بريدك الإلكتروني
  4. اضغط Save and Continue
  5. في Scopes، اضغط Add or Remove Scopes
  6. ابحث عن https://www.googleapis.com/auth/drive.file واختره
  7. اضغط Update ثم Save and Continue
  8. في Test users، أضف بريدك الإلكتروني
  9. اضغط Save and Continue ثم Back to Dashboard

4

إنشاء OAuth 2.0 Credentials

  1. اذهب إلى APIs & ServicesCredentials
  2. اضغط Create CredentialsOAuth client ID
  3. اختر Application type: Web application
  4. أدخل Name: Blood Bank Backup Client
  5. في Authorized redirect URIs، أضف:
    • http://localhost (للاستخدام المحلي)
    • أو رابط موقعك (مثال: https://yourdomain.com)
  6. اضغط Create
  7. ستحصل على:
    • Client ID (مثال: 123456789-abc.apps.googleusercontent.com)
    • Client Secret (مثال: GOCSPX-xxxxxxxxxxxx)
مهم: احفظ Client ID و Client Secret في مكان آمن. ستحتاج إليهما في الخطوة التالية.

5

الحصول على Refresh Token

الطريقة 1: استخدام OAuth2 Playground (الأسهل والأسرع)
  1. اذهب إلى OAuth2 Playground
  2. في الجانب الأيمن، اضغط على أيقونة الإعدادات
  3. فعّل Use your own OAuth credentials
  4. أدخل OAuth Client ID و OAuth Client secret من الخطوة السابقة
  5. في القائمة اليسرى، ابحث عن Drive API v3
  6. اختر https://www.googleapis.com/auth/drive.file
  7. اضغط Authorize APIs
  8. سجل دخول بحساب Google الخاص بك
  9. اضغط Allow للسماح بالوصول
  10. اضغط Exchange authorization code for tokens
  11. ستحصل على Refresh token (مثال: 1//xxxxxxxxxxxx)
ممتاز! الآن لديك جميع البيانات المطلوبة:
  • Client ID
  • Client Secret
  • Refresh Token

6

الحصول على Folder ID (اختياري)

إذا أردت رفع النسخ الاحتياطية في مجلد محدد:

  1. افتح Google Drive
  2. أنشئ مجلد جديد (مثال: Blood Bank Backups)
  3. افتح المجلد
  4. انسخ ID من الرابط:
    • الرابط: https://drive.google.com/drive/folders/1a2b3c4d5e6f7g8h9i0j
    • الـ ID: 1a2b3c4d5e6f7g8h9i0j
إذا تركت هذا الحقل فارغاً، سيتم رفع الملفات في الجذر (Root) في Google Drive.

7

إدخال البيانات في النظام

  1. افتح صفحة الإعدادات في النظام
  2. اذهب إلى قسم إعدادات Google Drive للنسخ الاحتياطي
  3. أدخل:
    • Google Drive Client ID
    • Google Drive Client Secret
    • Google Drive Refresh Token
    • معرف مجلد Google Drive (اختياري)
  4. اضغط حفظ التغييرات

8

إعداد النسخ الاحتياطي الأسبوعي التلقائي

Linux/Mac (crontab):
# افتح crontab
crontab -e

# أضف السطر التالي (كل يوم أحد الساعة 2 صباحاً)
0 2 * * 0 php /path/to/blood/cron/weekly_backup.php >> /path/to/blood/storage/logs/backup.log 2>&1
Windows (Task Scheduler):
  1. افتح Task Scheduler
  2. اضغط Create Basic Task
  3. املأ المعلومات:
    • Name: Weekly Backup
    • Trigger: Weekly
    • Start time: 2:00 AM
    • Day: Sunday
  4. Action: Start a program
  5. Program: php
  6. Arguments: C:\laragon\www\blood\cron\weekly_backup.php
  7. اضغط Finish

التحقق من الإعداد

  1. أنشئ نسخة احتياطية يدوياً من صفحة النسخ الاحتياطي
  2. فعّل خيار رفع النسخة الاحتياطية على Google Drive
  3. تحقق من Google Drive للتأكد من رفع الملف

استكشاف الأخطاء

تأكد من إدخال Refresh Token في صفحة الإعدادات بشكل صحيح.

  • تحقق من صحة Client ID و Client Secret
  • تأكد من تفعيل Google Drive API
  • تحقق من أن Refresh Token لم ينتهِ صلاحيته

  • تحقق من صحة Folder ID (إذا استخدمته)
  • تأكد من أن Refresh Token لم ينتهِ صلاحيته
  • تحقق من أن حساب Google لديه مساحة كافية
ملاحظات مهمة
  • Refresh Token لا ينتهي صلاحيته إلا إذا قمت بإلغاء الصلاحيات
  • النسخ الاحتياطية الأسبوعية التلقائية تُرفع تلقائياً على Google Drive إذا كان مفعّلاً
  • يمكنك رفع النسخ الاحتياطية يدوياً من صفحة النسخ الاحتياطي
  • احفظ Client ID و Client Secret و Refresh Token في مكان آمن