from flask import Flask, request, jsonify

app = Flask(__name__)

# URL Callback untuk verifikasi
@app.route('/facebook', methods=['GET', 'POST'])
def webhook():
    if request.method == 'GET':
        # Memverifikasi token yang dikirim oleh Facebook/Instagram
        token = request.args.get('hub.verify_token')  # Token yang dikirimkan oleh Facebook/Instagram
        challenge = request.args.get('hub.challenge')  # Challenge yang harus dikirim balik untuk verifikasi

        # Verifikasi token dengan yang Anda tentukan di Meta Developer Console
        if token == 'serenity290503190903':  # Gantilah dengan token verifikasi yang Anda masukkan
            return challenge  # Mengirimkan challenge untuk verifikasi webhook
        else:
            return 'Invalid Token', 403  # Jika token tidak cocok, kirimkan error

    elif request.method == 'POST':
        # Memproses data webhook yang diterima
        data = request.json  # Mendapatkan data dalam format JSON yang dikirimkan oleh Facebook/Instagram
        print(f"Received Webhook Data: {data}")
        
        # Di sini, Anda bisa memproses data webhook sesuai kebutuhan
        # Misalnya, memeriksa komentar baru, kemudian membalas komentar secara otomatis

        # Setelah pemrosesan selesai, kirimkan respons yang menunjukkan penerimaan data
        return jsonify({'status': 'success'}), 200

if __name__ == '__main__':
    app.run(debug=True, port=5879)
