Sign inGet Started

Python · FastAPI

Bird Python SDK के async क्लाइंट का उपयोग करके FastAPI एंडपॉइंट से अपना पहला ईमेल भेजें। इसके तीन चरण हैं: इंस्टॉल करना, भेजना और चलाना।

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

कोड उदाहरण
python -m pip install messagebird-sdk "fastapi[standard]"

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

2. ईमेल भेजें

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

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

main.py बनाएँ। स्टार्टअप पर एक AsyncBird बनाएँ और उसे सभी अनुरोधों में दोबारा इस्तेमाल करें: यह कनेक्शन पूल करता है और इसे कई टास्क के बीच सुरक्षित रूप से साझा किया जा सकता है।

कोड उदाहरण
from bird import AsyncBird, APIError
from fastapi import FastAPI, HTTPException

app = FastAPI()
client = AsyncBird()


@app.post("/send", status_code=202)
async def send() -> dict[str, str]:
    try:
        message = await 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:
        raise HTTPException(status_code=502, detail=str(err))
    return {"id": message.id, "status": message.status}

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

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

3. आज़माएँ

कोड उदाहरण
fastapi dev main.py
curl -X POST http://localhost:8000/send

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

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

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

अगले कदम

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