لجعل Flask يتصل بـ Google Sheets، سنقوم بتنفيذ الخطوات التالية:
✅ تفعيل Google Sheets API في Google Cloud.
✅ إعداد بيانات الاعتماد (Credentials) لحساب الخدمة.
✅ تثبيت المكتبات المطلوبة.
✅ كتابة كود Flask للاتصال بـ Google Sheets.
🔹 1. تفعيل Google Sheets API في Google Cloud
1️⃣ انتقل إلى Google Cloud Console
2️⃣ أنشئ مشروعًا جديدًا باسم Flask-Sheets.
3️⃣ قم بتمكين Google Sheets API عبر البحث عن Google Sheets API وتفعيله.
4️⃣ انتقل إلى “APIs & Services” > “Credentials”.
5️⃣ اضغط على “Create Credentials” واختر “Service Account”.
6️⃣ أدخل اسم الحساب (مثل “Flask Sheets Access”) واضغط “Create”.
7️⃣ في قسم “Role”، اختر “Google Sheets Editor” لمنح صلاحيات التعديل على Google Sheets.
8️⃣ اضغط “Create Key” واختر “JSON” لتنزيل ملف بيانات الاعتماد.
9️⃣ احفظ ملف JSON باسم credentials.json
داخل مجلد Flask.
🔹 الآن، لديك حساب خدمة جاهز للاتصال بـ Google Sheets API! 🚀
🔹 2. مشاركة Google Sheets مع حساب الخدمة
بعد إنشاء حساب الخدمة، تحتاج إلى إضافته كمستخدم داخل ملف Google Sheets حتى يتمكن من الوصول إليه.
📌 الخطوات العملية:
1️⃣ افتح ملف Google Sheets الذي تريد استخدامه.
2️⃣ اضغط على “Share” في أعلى الصفحة.
3️⃣ انسخ البريد الإلكتروني الخاص بحساب الخدمة من ملف credentials.json
(يكون مثل your-service-account@your-project.iam.gserviceaccount.com
).
4️⃣ أضفه كمستخدم جديد في Google Sheets مع إعطائه صلاحية “Editor”.
🔹 الآن، يمكن لتطبيقك الوصول إلى Google Sheets! 🚀
🔹 3. تثبيت المكتبات المطلوبة في Python
افتح الطرفية (Terminal) وثبّت المكتبات:
bash
pip install flask gspread oauth2client
🔹 4. إعداد الاتصال بـ Google Sheets داخل Flask
📌 إنشاء ملف app.py
داخل مجلد Flask
python
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from flask import Flask, request, jsonify
app = Flask(__name__)
# إعداد الاتصال بـ Google Sheets
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("credentials.json", scope)
client = gspread.authorize(creds)
# فتح ملف Google Sheets
sheet = client.open("UserDatabase").sheet1
# جلب جميع البيانات
@app.route('/api/users', methods=['GET'])
def get_users():
users = sheet.get_all_records()
return jsonify(users)
# إضافة مستخدم جديد
@app.route('/api/add_user', methods=['POST'])
def add_user():
data = request.get_json()
sheet.append_row([data["email"], data["password"], data["username"]])
return jsonify({"status": "success", "message": "تمت إضافة المستخدم بنجاح!"})
# التحقق من تسجيل الدخول
@app.route('/api/login', methods=['POST'])
def login():
data = request.get_json()
email = data.get("email")
password = data.get("password")
users = sheet.get_all_records()
for user in users:
if user["email"] == email and user["password"] == password:
return jsonify({"status": "success", "message": "تم تسجيل الدخول!", "username": user["username"]}), 200
return jsonify({"status": "error", "message": "بيانات الدخول غير صحيحة"}), 401
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
🔹 الآن، لديك API جاهز للتحقق من تسجيل الدخول باستخدام Google Sheets! 🚀
🔹 5. تشغيل Flask على السيرفر
بعد حفظ الملف، قم بتشغيل Flask:
bash
python3 app.py
الآن، يمكنك الوصول إلى التطبيق عبر المتصفح باستخدام:
http://your-server-ip:5000/api/users