Ana içeriğe atla

Python ile Facebook Messenger Botunuzu Yayınlayın

Flask, requests ve ngrok kullanarak Python ile bir Facebook Messenger chatbot'unu kolayca dağıtmaya yönelik adım adım kılavuz.
Güncel 3 Eki 2026  · 7 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Doğru yapıldığında, insan diliyle bir bilgisayarla etkileşim kurmak son derece güçlü ve bir o kadar da eğlencelidir. Mesajlaşma ve Ses Kontrollü cihazlar bir sonraki büyük platformlar ve sohbet tabanlı bilişim, etkileyici artırılmış ve sanal gerçeklik deneyimleri yaratmada önemli bir role sahip. Bu tür programları geliştirirken benzersiz zorluklar vardır; örneğin: chatbot'umu dış dünyaya nasıl açarım?

Bu eğitimde, 1 milyardan fazla aktif kullanıcısı olan Facebook Messenger üzerinde bir chatbot'u nasıl dağıtacağınızın adımlarını inceleyeceksiniz. Sadece birkaç satır kodla çok geniş bir kitleye ulaşabilirsiniz.

Bunu yapmak için 3 ana adım vardır. Şunları yapmanız gerekir:

  • Facebook'tan gelen mesajları dinleyen bir sunucu oluşturmak (flask kullanarak)
  • Kullanıcılara geri mesaj gönderecek bir fonksiyon tanımlamak (requests kullanarak)
  • https bağlantısını yerel makinenize iletmek (ngrok kullanarak)

İnsan dilini makine talimatlarına dönüştürme hakkında daha fazla bilgi edinmek isterseniz, Python ile Chatbot Oluşturma DataCamp kursuna göz atın.

Bu yazıda ele almayacağınız konu ise botunuzun insanların ne söylediğini nasıl anlayacağı ve uygun şekilde nasıl yanıt vereceğidir. Bununla ilgili daha fazla bilgi edinmek için Rasa NLU, Rasa Core ve az önce bahsedilen DataCamp kursuna bakmalısınız.

Python chatbot

Chatbot'unuzu bir http Sunucusuna Sarmalayın

İlk adım, Facebook tarafından gönderilen mesajları dinleyen, bu mesaja bir yanıt alan ve sonunda yanıtı Facebook'ta kullanıcıya geri gönderen bir http sunucusu oluşturmaktır. Bu sunucuyu oluşturmak için flask kullanacağız. Temel fikir şöyledir:

  • localhost:5000/webhook adresine gönderilen mesajları dinleyen bir flask uygulaması oluşturun. Facebook üzerinden mesaj gönderildiğinde, bu URL'ye http isteği olarak ulaşacaktır.
  • listen() fonksiyonu bu http isteklerini işler ve geçerli bir Facebook mesajı içerip içermediğini kontrol eder
  • Mesaj geçerliyse get_bot_response() fonksiyonu çağrılır ve yanıt Facebook Messenger'a geri gönderilir

Ek olarak, Facebook ile uygulamanız arasındaki ilk kimlik doğrulamayı yöneten verify_webhook() adlı bir fonksiyon oluşturacaksınız.

Nihai betik şu şekildedir (server.py adıyla kaydedin):

from flask import Flask, request

app = Flask(__name__)

FB_API_URL = 'https://graph.facebook.com/v2.6/me/messages'
VERIFY_TOKEN = ''# <paste your verify token here>
PAGE_ACCESS_TOKEN = ''# paste your page access token here>"


def get_bot_response(message):
    """This is just a dummy function, returning a variation of what
    the user said. Replace this function with one connected to chatbot."""
    return "This is a dummy response to '{}'".format(message)


def verify_webhook(req):
    if req.args.get("hub.verify_token") == VERIFY_TOKEN:
        return req.args.get("hub.challenge")
    else:
        return "incorrect"

def respond(sender, message):
    """Formulate a response to the user and
    pass it on to a function that sends it."""
    response = get_bot_response(message)
    send_message(sender, response)


def is_user_message(message):
    """Check if the message is a message from the user"""
    return (message.get('message') and
            message['message'].get('text') and
            not message['message'].get("is_echo"))


@app.route("/webhook")
def listen():
    """This is the main function flask uses to 
    listen at the `/webhook` endpoint"""
    if request.method == 'GET':
        return verify_webhook(request)

    if request.method == 'POST':
        payload = request.json
        event = payload['entry'][0]['messaging']
        for x in event:
            if is_user_message(x):
                text = x['message']['text']
                sender_id = x['sender']['id']
                respond(sender_id, text)

        return "ok"

Yukarıdaki betikte VERIFY_TOKEN ve PAGE_ACCESS_TOKEN değişkenleri henüz tanımlı değil — bu yüzden bunları ayarlamanız gerekecek. VERIFY_TOKEN herhangi bir dize olabilir; Facebook'a bu sunucunun mesaj almak istediğini bildiren bir tür parola olarak kullanılır. Uzun ve rastgele bir dize kullanmak iyi bir fikirdir. Terminalinizde openssl rand -base64 32 komutunu çalıştırarak bunu hızlıca yapabilirsiniz.

PAGE_ACCESS_TOKEN konusunda şimdilik endişelenmeyin — bunu aşağıda nasıl alacağınızı göreceksiniz!

Kullanıcılara Mesajları Geri Gönderin

Sırada, requests adlı bir Python kütüphanesini kullanarak yanıtı Facebook Messenger'a geri gönderen bir fonksiyon yazacaksınız. Özellikle, bir HTTP POST isteği oluşturan post() metodunu kullanırsınız. Bir POST isteği, bir sunucuya bilgi göndermenin tipik yoludur.

Fonksiyonunuz aşağıdaki gibi olmalıdır:

import requests

def send_message(recipient_id, text):
    """Send a response to Facebook"""
    payload = {
        'message': {
            'text': text
        },
        'recipient': {
            'id': recipient_id
        },
        'notification_type': 'regular'
    }

    auth = {
        'access_token': PAGE_ACCESS_TOKEN
    }

    response = requests.post(
        FB_API_URL,
        params=auth,
        json=payload
    )

    return response.json()

https Uç Noktasını Dışa Açın ve Bir Facebook Sayfasına Bağlayın

localhost:5000 URL'si yalnızca çalışan sunucuyla aynı bilgisayarda oluşturulan istekler için çalışır. Bu nedenle Facebook'un sizin flask sunucunuza nasıl ulaşacağını belirtmeniz gerekir. Bunu yapmak için önce ngrok kurun.

Bu sayfaya gidin ve işletim sisteminize uygun sürümü kurun. Mac kullanıyorsanız ve homebrew varsa, ngrok'u kurmanın en hızlı yolu brew cask install ngrok komutudur.

Terminalinizde ngrok http 5000 ile ngrok sunucusunu başlatın. Bu, makinenize 5000 portundan iletilecek bir https uç noktası kuracaktır; örneğin https://51b6b3fa.ngrok.io.

Not: ngrok'tan çıkıp yeniden başlatırsanız, bu URL değişecektir.

Bir Facebook Uygulaması ve Sayfası Oluşturun

Bir sonraki adım Facebook'ta bir uygulama ve bir sayfa oluşturmaktır. Facebook tarafından iyi bir dokümantasyon sağlanmıştır, ancak burada ana adımları gözden geçireceksiniz.

Uygulamayı oluşturmak için buraya gidin ve

  • My Apps -> Add a New App'e tıklayın ve bir ad girin
  • uygulamanın kontrol paneline yönlendirileceksiniz
  • Products altında Add a Product'ı bulun ve Messenger -> Set Up'a tıklayın

Sayfayı oluşturmak için şunları yapmalısınız:

  • Messenger ayarlarına gidin, Token Generation bölümüne kadar kaydırın ve uygulamanız için yeni bir sayfa oluştur bağlantısına tıklayın

Bir sayfa oluşturduktan sonra, tekrar Token Generation ayarlarına gidin ve açılır menüden bu sayfayı seçin. Page Access Token'ı yukarıdaki server.py dosyasında PAGE_ACCESS_TOKEN için ayrılan yere kopyalayın.

Bot sunucunuzu başlatın

Artık her şeyi ayarladığınıza göre, chatbot sunucunuzu başlatma zamanı! Ayrı bir terminal sekmesinde şunu çalıştırın

FLASK_APP=server.py flask run

Webhook'u ayarlayın

Son olarak, webhook'unuzu Facebook geliştirici sayfasında kaydetmeniz gerekir.

  • Yine Products içindeki Messenger sekmesine gidin ve Webhooks bölümüne kadar kaydırın, Setup Webhooks'a tıklayın
  • Callback URL alanına ngrok URL'nizi girin; örneğin https://51b6b3fa.ngrok.io/webhook. Bu noktada flask uygulamanızın çalışıyor olması önemlidir, çünkü bir sonraki adımda verify_token() çağrılacaktır
  • Verify Token alanına server.py dosyanızda belirttiğiniz değeri girin
  • Subscription Fields altında messages ve messaging_postbacks'in işaretli olduğundan emin olun Doğrula ve Kaydet'e tıklayın ve kimlik doğrulamayı gerçekleştirin

Önemli: Products -> Messenger'a geri dönün ve Webhook'unuzu sayfa olaylarına abone etmek için bir sayfa seçin altında sayfanızı seçip Subscribe'a tıklayın.

İşlem tamam!

Botunuz artık Facebook Messenger üzerinden mesaj göndermeye ve almaya hazır. Şu anda get_bot_response() fonksiyonunuz hâlâ oldukça basit ve henüz gerçek bir chatbot gibi hissettirmiyor! Chatbot oluşturma hakkında her şeyi öğrenmek için Python ile Chatbot Oluşturma DataCamp kursuna ve Python'da Chatterbot Kullanarak Chatbot Oluşturma eğitimine, ayrıca Rasa NLU ve Rasa Core Python kütüphanelerine göz atın. 

Konular
Python
Veri Bilimi

Python hakkında daha fazlasını öğrenin

Kurs

Python’a Giriş

4 sa
7.1M
Python ile veri analizi temellerini sadece dört saatte öğrenin. Bu çevrimiçi kurs, Python arayüzünü tanıtacak ve popüler paketleri keşfedecektir.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör