यह ट्यूटोरियल आपको BotHelp के साथ अपना एकीकरण बनाने में मदद करेगा। आप BotHelp को किसी विशेष घटना के बारे में तुरंत सूचित करने के लिए कॉन्फ़िगर कर सकते हैं। ऐसी सूचना को वेबहुक - यह एक साधारण HTTPS POST अनुरोध है जिसे BotHelp किसी विशेष घटना के घटित होने पर आपके सर्वर पर भेजता है।
वेबहुक सेट अप करना
फ़िलहाल, एक BotHelp खाते में केवल एक ही वेबहुक हो सकता है जो डिफ़ॉल्ट रूप से दो इवेंट्स पर सब्सक्राइब होता है: user_profile_viewed और conversation_closed। वेबहुक सब्सक्रिप्शन को आपके डैशबोर्ड के "वेबहुक" सेक्शन में कॉन्फ़िगर किया जा सकता है। केवल एडमिन ही वेबहुक जोड़, संपादित या हटा सकते हैं। हम सूचनाओं की सुरक्षा के लिए HTTPS सब्सक्रिप्शन URL का समर्थन करते हैं।
"वेबहुक जोड़ें" पर क्लिक करने पर वेबहुक बनाने के लिए एक फ़ॉर्म दिखाई देगा। वेबहुक का URL दर्ज करें, उसे सेव करें और हम इस वेबहुक के लिए स्वचालित रूप से एक टोकन जनरेट कर देंगे। निर्दिष्ट URL और जनरेट किए गए टोकन वाला वेबहुक पृष्ठ पर वेबहुक की सूची में दिखाई देगा।
अनुरोध का हस्ताक्षर बनाने के लिए टोकन आवश्यक है। प्रत्येक कॉलबैक में कॉलबैक को भेजे गए JSON पर एक हस्ताक्षर होगा। यह हस्ताक्षर SHA256 के साथ HMAC है जो जनरेट किए गए टोकन को कुंजी और JSON को मान के रूप में उपयोग करेगा। परिणाम HTTP हेडर X-Wh-Sign के रूप में भेजा जाएगा ताकि प्राप्तकर्ता संदेश के मूल स्रोत का पता लगा सके।
वेबहुक प्रारूप
प्रत्येक वेबहुक आपके खाते के एकीकरण अनुभाग में आपके द्वारा दिए गए URL पर भेजा गया एक HTTPS POST अनुरोध होता है। अनुरोध के POST भाग में JSON प्रारूप में वेबहुक जानकारी होती है।
प्रत्येक वेबहुक में निम्नलिखित गुण होते हैं:
- event – आपको वह इवेंट बताता है जिसने वेबहुक को ट्रिगर किया। संभावित मान: user_profile_viewed, conversation_closed.
- event_timestamp - उस घटना का समय जिसने कॉलबैक को ट्रिगर किया।
- अतिरिक्त जानकारी - किसी विशिष्ट ईवेंट प्रकार से संबंधित जानकारी। कृपया नीचे दिए गए वेबहुक ईवेंट प्रकार अनुभाग को पढ़ें।
जब आपका सर्वर BotHelp से एक वेबहुक प्राप्त करता है, तो उसे HTTP 200 स्थिति कोड के साथ प्रतिक्रिया देनी चाहिए। अन्यथा, BotHelp आपकी सेवा को वेबहुक भेजने का कई बार प्रयास करेगा, जब तक कि उसे सही HTTP 200 स्थिति कोड (जल्द ही) प्राप्त न हो जाए।
नोट: BotHelp वेबहुक Content-Type: application/json HTTP हेडर के साथ भेजे जाते हैं, इसलिए कृपया सुनिश्चित करें कि आपकी सेवा ऐसे अनुरोधों को संभाल सकती है।
वेबहुक इवेंट प्रकार
वार्तालाप बंद कार्यक्रम
यह इवेंट प्रकार हर बार तब भेजा जाता है जब आपके ग्राहक के साथ बातचीत किसी ऑपरेटर द्वारा बंद की जाती है। इस इवेंट के अनुरोध के POST बॉडी का उदाहरण यह है:
{
"event": "conversation_closed",
"event_timestamp": 1400857494,
"conversation": {
"type": "conversation",
"id": "147",
"started_at": 1400850973,
"ended_at": 1400857494
},
"user": {
"type": "user",
"id": “123123”,
“nick”: “Mister Ivan”,
“email”: “i.ivanov@gmail.com”,
“phone”: “+1123456789 ext. 923”,
"name": "Ivan Ivanov",
"channel_type": "viber",
"channel_user_id": "asddasdasd==",
"channel_id": "bothelp",
"last_contact_at": 1397574667,
"first_contact_at": 1397574667,
"conversations_count": 179,
"avatar": "https://example.org/128Wash.jpg",
"custom_fields": {
"paid_subscriber": true,
"monthly_spend": 155.5,
"team_mates": 1
}
},
"assignee": {
"type": "agent", // या "team" यदि यह वार्तालाप टीम को सौंपा गया था
"id": "25",
"email": "wash@hello.io", // या "" यदि ऑपरेटर वास्तविक नहीं है। यदि यह वार्तालाप टीम को सौंपा गया था तो यह फ़ील्ड अनुपस्थित है
"name": "Dmitry"
},
"authors": [ //वर्तमान वार्तालाप में शामिल ऑपरेटर
{
"type": "agent",
"id": "2",
"email": "",
"name": "Vkontakte Page"
},
{
"type": "agent",
"id": "4",
"email": "",
"name": "Facebook Page"
},
{
"type": "agent",
"id": "25",
"email": "wash@hello.io",
"name": "Dmitry"
}
],
"messages": [
{
"author": {
"type": "user",
"id": "123123"
},
"id": "344",
"type": "text",
"text": "Hello",
"timestamp": 1358937653
},
{
"author": {
"type": "उपयोगकर्ता",
"आईडी": "123123"
},
"आईडी": "417",
"प्रकार": "दस्तावेज़",
"डेटा": {
"लिंक": 'http://example.com/document.pdf',
"नाम": 'SimpleDocument.pdf',
"आकार": 24123
},
"टाइमस्टैम्प": 1358937661
},
{
"लेखक": {
"प्रकार": "एजेंट",
"आईडी": "25"
},
"आईडी": "420",
"प्रकार": "छवि",
"डेटा": "http://example.org/image.jpg",
"टाइमस्टैम्प": 1358937661
},
{
"लेखक": {
"प्रकार": "एजेंट",
"आईडी": "25"
},
"आईडी": "425",
"प्रकार": "स्टिकर",
"डेटा": "http://example.org/sticker1.png",
"timestamp": 1358937661
},
{
"author": {
"type": "agent",
"id": "25"
},
"id": "450",
"type": "video",
"data": "http://example.org/video1.mp4",
"timestamp": 1358937661
},
{
"author": {
"type": "user",
"id": "123123"
},
"id": "457",
"type": "location",
"data": {
"longitude": 25.0123323,
"latitude": 50.1748532
},
"timestamp": 1358937661
},
{
"author": {
"type": "user",
"id": "123123"
},
"id": "460",
"type": "contact",
"data": {
"name": "इवान आई.",
"phone_number": "+123321123"
},
"timestamp": 1358937661
}
]
}
यदि आपके कोई प्रश्न हों तो बेझिझक हमसे चैट पर पूछें।