#!/usr/bin/env python3 # check_credentials.py - أداة فحص ملف بيانات الاعتماد import os import json def check_credentials(): """فحص ملف credentials.json والتأكد من صحته""" print("🔍 فحص ملف بيانات الاعتماد...") print("=" * 50) # فحص وجود الملف if not os.path.exists('credentials.json'): print("❌ ملف credentials.json غير موجود!") print("💡 تأكد من وضع الملف في نفس مجلد app.py") return False print("✅ ملف credentials.json موجود") # فحص محتوى الملف try: with open('credentials.json', 'r') as f: creds = json.load(f) print("✅ الملف يحتوي على JSON صحيح") # فحص البنية if 'installed' not in creds: print("❌ الملف لا يحتوي على قسم 'installed'") return False installed = creds['installed'] # فحص الحقول المطلوبة required_fields = ['client_id', 'client_secret', 'auth_uri', 'token_uri'] missing_fields = [] for field in required_fields: if field not in installed: missing_fields.append(field) if missing_fields: print(f"❌ الحقول المفقودة: {', '.join(missing_fields)}") return False # فحص إذا كانت البيانات وهمية client_id = installed.get('client_id', '') client_secret = installed.get('client_secret', '') if client_id.startswith('YOUR_CLIENT_ID'): print("❌ client_id لا يزال يحتوي على القيمة الافتراضية!") print("💡 يجب استبدال الملف بملف حقيقي من Google Cloud Console") return False if client_secret.startswith('YOUR_CLIENT_SECRET'): print("❌ client_secret لا يزال يحتوي على القيمة الافتراضية!") print("💡 يجب استبدال الملف بملف حقيقي من Google Cloud Console") return False print("✅ جميع الحقول المطلوبة موجودة") print(f"✅ Client ID: {client_id[:20]}...") print(f"✅ Project ID: {installed.get('project_id', 'غير محدد')}") return True except json.JSONDecodeError: print("❌ الملف لا يحتوي على JSON صحيح!") return False except Exception as e: print(f"❌ خطأ في قراءة الملف: {e}") return False def check_token(): """فحص ملف token.json إذا كان موجوداً""" print("\n🔍 فحص ملف المصادقة...") print("=" * 50) if os.path.exists('token.json'): print("✅ ملف token.json موجود") try: with open('token.json', 'r') as f: token = json.load(f) if 'token' in token: print("✅ يحتوي على رمز مصادقة") if 'refresh_token' in token: print("✅ يحتوي على رمز التحديث") if 'expiry' in token: print(f"⏰ تاريخ انتهاء الصلاحية: {token['expiry']}") except Exception as e: print(f"⚠️ مشكلة في ملف token.json: {e}") print("💡 يمكنك حذف الملف وإعادة المصادقة") else: print("ℹ️ ملف token.json غير موجود (طبيعي في أول استخدام)") def main(): print("🚀 أداة فحص بيانات الاعتماد لـ Google Docs") print("=" * 60) creds_ok = check_credentials() check_token() print("\n" + "=" * 60) if creds_ok: print("🎉 ملف بيانات الاعتماد صحيح!") print("💡 يمكنك الآن استخدام زر التصدير") else: print("❌ يجب إصلاح ملف بيانات الاعتماد أولاً") print("📋 راجع ملف GOOGLE_SETUP_SIMPLE.md للحصول على التعليمات") if __name__ == "__main__": main()