# Apple Messages वार्तालाप का जवाब दें

उस ग्राहक को टेक्स्ट जवाब भेजें जिसने Apple Messages for Business वार्तालाप शुरू किया है, फिर संदेश के परिणाम की जाँच करें।

## पूर्वापेक्षाएँ

आपके वर्कस्पेस को एक स्वीकृत Apple बिज़नेस और उसके ग्राहक द्वारा शुरू किया गया एक खुला वार्तालाप चाहिए। AMB सपोर्ट वाले CLI और SDK पैकेज प्रकाशन की प्रतीक्षा में हैं। इन कमांड के लिए ऐसा बिल्ड ज़रूरी है जिसमें `bird amb` शामिल हो; आगे बढ़ने से पहले `bird amb --help` जाँचें। जब तक इन कमांड वाला पैकेज प्रकाशित नहीं होता, [API संदर्भ](/docs/api/reference/create-amb-message) या Apple Messages डैशबोर्ड का उपयोग करें। उस क्षेत्र के लिए प्रमाणित करें जहाँ आपका वर्कस्पेस होस्ट है।

`jq` और `uuidgen` इंस्टॉल किए हुए Bash का उपयोग करें। उस वर्कस्पेस के लिए CLI को प्रमाणित करें। वार्तालाप और संदेशों की जाँच के लिए आपके क्रेडेंशियल को `amb:read`, भेजने के लिए `amb:write` और बिज़नेस की जाँच के लिए `amb_management:read` की ज़रूरत है। प्राप्तकर्ता से संपर्क की अनुमति वाले किसी मौजूदा टेस्ट वार्तालाप का उपयोग करें।

## 1. बिज़नेस और वार्तालाप चुनें

```sh
bird amb businesses list
bird amb conversations list
```

प्रॉम्प्ट पर, उन सूचियों से चुने गए रिकॉर्ड ID पेस्ट करें:

```sh
read -r -p "Business record ID: " BUSINESS_ID
read -r -p "Conversation record ID: " CONVERSATION_ID
bird amb businesses get "$BUSINESS_ID"
bird amb conversations get "$CONVERSATION_ID"
```

सत्यापित करें कि बिज़नेस स्वीकृत है, वार्तालाप खुला है, और उसका बिज़नेस चयनित रिकॉर्ड से मेल खाता है। भेजने के अनुरोध में उपयोग होने वाले Apple पहचानकर्ता निकालें:

```sh
APPLE_BUSINESS_ID=$(bird amb businesses get "$BUSINESS_ID" --format json | jq -er '.apple_business_id')
OPAQUE_USER_ID=$(bird amb conversations get "$CONVERSATION_ID" --format json | jq -er '.opaque_user_id')
```

साधारण जवाब के लिए अपारदर्शी ग्राहक पहचानकर्ता की जगह फ़ोन नंबर का उपयोग नहीं किया जा सकता।

## 2. जवाब का पूर्वावलोकन करें

```sh
bird amb send --from "$APPLE_BUSINESS_ID" --to "$OPAQUE_USER_ID" \
  --content '{"type":"text","body":"Your order is ready."}' --dry-run
```

यह कमांड अनुरोध को बिना भेजे प्रिंट करता है। बिज़नेस, प्राप्तकर्ता और संदेश टेक्स्ट जाँचें। पूरे अनुरोध की संरचना देखने के लिए `bird amb send --example` चलाएँ। `--body-file` के ज़रिए पास की गई JSON फ़ाइल में category, tags या locale जैसे वैकल्पिक फ़ील्ड शामिल किए जा सकते हैं।

## 3. समीक्षित संदेश भेजें

```sh
REQUEST_ID=$(uuidgen)
MESSAGE_ID=$(bird amb send --from "$APPLE_BUSINESS_ID" --to "$OPAQUE_USER_ID" \
  --content '{"type":"text","body":"Your order is ready."}' \
  --idempotency-key "$REQUEST_ID" --format json | jq -er '.id')
printf '%s\n' "$MESSAGE_ID"
```

यह कमांड एक अनुरोध पहचानकर्ता बनाता है और प्रतिक्रिया ID को `MESSAGE_ID` में सहेजता है। भेजने पर एक बिल-योग्य संदेश असिंक्रोनस प्रोसेसिंग के लिए कतार में लग जाता है। अगर आप फिर से प्रयास करते हैं, तो `REQUEST_ID` का पुनः उपयोग करें; उस अनुरोध के लिए `uuidgen` दोबारा न चलाएँ।

## 4. परिणाम की जाँच करें

```sh
bird amb get "$MESSAGE_ID"
bird amb list-events "$MESSAGE_ID"
```

`sent` Apple के गेटवे द्वारा स्वीकृति दर्ज करता है। यह डिवाइस डिलीवरी या ग्राहक द्वारा संदेश पढ़े जाने की पुष्टि नहीं करता। विफल या अनिश्चित भेजने के बाद अगला संदेश सबमिट करने से पहले जाँच आवश्यक है। आपकी बुकिंग, ऑर्डर या अन्य बिज़नेस कार्रवाई को अपने स्वतंत्र पुष्ट परिणाम की प्रतीक्षा करनी होगी।

असिंक्रोनस अपडेट के लिए, [वेबहुक](/docs/guides/webhooks) के ज़रिए `amb.accepted`, `amb.sent`, `amb.send_failed`, `amb.rejected`, `amb.received`, या conversation lifecycle इवेंट की सदस्यता लें। सिग्नेचर सत्यापित करें और वेबहुक ID से डिलीवरी डीडुप्लिकेट करें। इवेंट क्रम से बाहर आ सकते हैं।

## उसी एक्सचेंज के लिए MCP का उपयोग करें

MCP संबंधित टूल प्रदान करता है: `amb_businesses_list`, `amb_businesses_get`, `amb_conversations_list`, `amb_conversations_get`, `amb_send`, `amb_get`, और `amb_list_events`। `amb_send` को वही `from`, `to`, और `content` ऑब्जेक्ट दें, साथ ही अनुरोध फिर से प्रयास करते समय `idempotency_key` भी दें। टूल कॉल अधिकृत करने से पहले सटीक प्राप्तकर्ता और सामग्री की समीक्षा करें।

अगर कोई टूल अनुपलब्ध है, तो सर्वर संस्करण और आपके कनेक्शन को दिए गए स्कोप जाँचें।

## अनुरोध सीमाएँ

Apple Messages का डिफ़ॉल्ट प्रति संगठन प्रति मिनट 10 अनुरोध है। उत्तर, टाइपिंग इंडिकेटर और अटैचमेंट तैयारी एक रीजन में आपके सभी वर्कस्पेस और क्रेडेंशियल में यह सीमा साझा करते हैं। आपकी योजना या अनुमोदित ग्राहक सीमा इसे बढ़ा सकती है; वृद्धि के लिए सपोर्ट से संपर्क करें। अपनी प्रभावी सीमा की पुष्टि के लिए अपने संगठन के व्यवस्थापक या सपोर्ट से पूछें। जब कोई अनुरोध `429` लौटाए, तो फिर से प्रयास करने से पहले `Retry-After` अंतराल तक प्रतीक्षा करें।

## समस्या निवारण

अगर चैनल not-found प्रतिक्रिया लौटाता है, तो जाँचें कि संसाधन प्रमाणित वर्कस्पेस से संबंधित है या नहीं। अनुमति अस्वीकृति के लिए, क्रेडेंशियल का चैनल स्कोप जाँचें। रिप्लाई प्राप्त करने से पहले बिज़नेस को स्वीकृत और बातचीत को खुला होना ज़रूरी है; सप्रेशन भी भेजने को रोक सकते हैं।

अगर प्रोसेसिंग किसी स्वीकृत अनुरोध को अस्वीकार कर देती है, तो उसके इवेंट और बिलिंग कॉन्फ़िगरेशन की जाँच करें। भेजने का गेटवे परिणाम और ग्राहक का बिज़नेस परिणाम अलग-अलग हैं। सफल API प्रतिक्रिया से डिलीवरी का अनुमान न लगाएँ।

## अगले कदम

नेटिव एक्सचेंज और असिंक्रोनस बिज़नेस परिणामों के लिए [Apple Messages इंटीग्रेशन गाइड](/docs/guides/apple-messages/api) पढ़ें, या कोई अन्य बिज़नेस तैयार करने के लिए [रजिस्ट्रेशन गाइडेंस](/docs/guides/apple-messages/registration) देखें।

## Related resources

- [Webhooks done right: reliable delivery events](/learn/basics/webhooks-done-right-reliable-delivery-events) (video)
- [How do I verify a webhook signature?](/explained/platform/how-do-i-verify-a-webhook-signature) (answer)
- [Apple Messages for Business](/apple-messages-api) (product)
- [Operate messaging reliably](/learn/paths/reliability) (course)

[Get an implementation brief](/learn/workspace?topic=webhooks)
