Sign inGet Started

Python · Django

Bird Python SDK के sync क्लाइंट का उपयोग करके Django व्यू से अपना पहला ईमेल भेजें। तीन चरण: इंस्टॉल करें, भेजें, चलाएँ।

1. SDK इंस्टॉल करें

कोड उदाहरण
mkdir bird-django-quickstart
cd bird-django-quickstart
python -m pip install messagebird-sdk django
django-admin startproject config .
python manage.py startapp myapp

इसके लिए Python 3.10 या उससे नया संस्करण आवश्यक है। इंपोर्ट पैकेज bird है।

2. ईमेल भेजें

अपनी API कुंजी एक्सपोर्ट करें। SDK एनवायरनमेंट से BIRD_API_KEY पढ़ता है और bk_us1_ / bk_eu1_ प्रीफ़िक्स से क्षेत्र (us1 या eu1) का अनुमान लगाता है, इसलिए Bird() को किसी आर्गुमेंट की ज़रूरत नहीं होती:

कोड उदाहरण
export BIRD_API_KEY="bk_us1_..."

myapp/views.py में एक व्यू जोड़ें। मॉड्यूल लोड होते समय एक Bird बनाएँ और उसे सभी अनुरोधों में दोबारा उपयोग करें: यह कनेक्शन पूल करता है और इसे कई थ्रेड के बीच सुरक्षित रूप से साझा किया जा सकता है।

कोड उदाहरण
from bird import Bird, APIError
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_POST

client = Bird()


@csrf_exempt
@require_POST
def send_email(request):
    try:
        message = client.email.send(
            from_="onboarding@messagebird.dev",
            to=["delivered@messagebird.dev"],
            subject="Hello from Bird",
            html="<p>My first Bird email.</p>",
        )
    except APIError as err:
        return JsonResponse({"error": str(err)}, status=502)
    return JsonResponse({"id": message.id, "status": message.status}, status=202)

CSRF छूट की वजह से यह लोकल cURL उदाहरण चल पाता है। रूट को सार्वजनिक करने से पहले ऑथेंटिकेशन और उपयुक्त CSRF नीति जोड़ें।

इसे config/urls.py में जोड़ें:

कोड उदाहरण
from django.urls import path
from myapp.views import send_email

urlpatterns = [path("send/", send_email)]

from_, from फ़ील्ड का Python रूप है (from एक आरक्षित शब्द है)। onboarding@messagebird.dev, Bird का साझा ऑनबोर्डिंग प्रेषक है (डोमेन सत्यापन की ज़रूरत नहीं) और delivered@messagebird.dev एक सैंडबॉक्स प्राप्तकर्ता है जिस पर डिलीवरी हमेशा सफल होती है।

SDK अस्थायी विफलताओं पर अपने-आप फिर से प्रयास करता है और हर प्रयास में कॉल की idempotency कुंजी का दोबारा उपयोग करता है। इससे फिर से प्रयास होने पर संदेश दो बार नहीं भेजा जाता।

3. इसे आज़माएँ

कोड उदाहरण
python manage.py runserver
curl -X POST http://localhost:8000/send/

Bird संदेश को 202 के साथ स्वीकार करता है और उसे एसिंक्रोनस रूप से डिलीवर करता है; आपका व्यू em_ ID और स्थिति लौटाता है:

कोड उदाहरण
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted"
}

client.email.get(...) से संदेश को उसकी em_ ID के ज़रिए प्राप्त करें और देखें कि स्थिति accepted से delivered में कैसे बदलती है।

अगले कदम

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।