File size: 1,544 Bytes
e39541b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5041c3f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from flask import Flask, request
import requests
import config
from gemini_ai import get_gemini_response

app = Flask(__name__)

@app.route("/webhook", methods=["GET"])
def verify():
    """ تحقق من Facebook Webhook """
    if request.args.get("hub.verify_token") == config.VERIFY_TOKEN:
        return request.args.get("hub.challenge")
    return "خطأ في التحقق", 403

@app.route("/webhook", methods=["POST"])
def webhook():
    """ استقبال الرسائل من Facebook Messenger """
    data = request.get_json()
    
    if data.get("object") == "page":
        for entry in data["entry"]:
            for messaging_event in entry.get("messaging", []):
                if messaging_event.get("message"):
                    sender_id = messaging_event["sender"]["id"]
                    message_text = messaging_event["message"].get("text", "")
                    
                    if message_text:
                        response = get_gemini_response(message_text)
                        send_message(sender_id, response)

    return "ok", 200

def send_message(recipient_id, text):
    """ إرسال رسالة إلى المستخدم عبر Facebook Messenger """
    url = f"https://graph.facebook.com/v13.0/me/messages?access_token={config.PAGE_ACCESS_TOKEN}"
    headers = {"Content-Type": "application/json"}
    data = {"recipient": {"id": recipient_id}, "message": {"text": text}}
    
    requests.post(url, headers=headers, json=data)

if __name__ == "__main__":
    app.run(port=7860, debug=True)