मैसेज पाना

कारोबार के मैसेज के लिए रजिस्टर करने के बाद, आपको अपने टेस्ट एजेंट की ओर से मैसेज मिल सकते हैं. आपको ऐसे ब्रैंड के लिए मैसेज मिल सकते हैं जिन्हें आप मैनेज करते हैं , पुष्टि करें, और उन ब्रैंड के लिए लॉन्च करें.

जब कोई ग्राहक ऐसे एजेंट को मैसेज भेजता है जिसे आप मैनेज करते हैं, तो Business Messages आपके वेबहुक को JSON पेलोड भेजता है. इसमें कई आईडी, मैसेज का कॉन्टेंट, और जगह की जानकारी होती है.

मैसेज की डिलीवरी से जुड़ी समस्याओं को डीबग करने के लिए, Business Communications डेवलपर कंसोल लॉग पेज का इस्तेमाल करें.

आने वाले मैसेज मैनेज करना

आपका एजेंट, उपयोगकर्ताओं के मैसेज को कैसे हैंडल करता है और उनका जवाब कैसे देता है, यह आपके कारोबार के नियम पर निर्भर करता है. हालांकि, उपयोगकर्ता के मैसेज का जवाब देने के तरीके एक जैसे होते हैं.

मैसेज स्वीकार करें

वेबहुक के ज़रिए मिले मैसेज को स्वीकार करने के लिए, वेबहुक पर भेजे गए मैसेज का मान्य एचटीटीपी रिस्पॉन्स दिखाएं.

अगर किसी मैसेज की डिलीवरी समय खत्म होने, वेबहुक रीचेबिलिटी, रीडायरेक्ट करने या अनुमति से जुड़ी समस्याओं की वजह से मैसेज डिलीवर नहीं हो पाता है, तो Google सात दिनों तक या आपके वेबहुक के मैसेज मिलने तक मैसेज को फ़ॉरवर्ड और फ़ॉरवर्ड करता है.

इस बात की पुष्टि करें कि मैसेज Google ने भेजा है

मैसेज के कॉन्टेंट को प्रोसेस करने से पहले, आपको इस बात की पुष्टि कर लेनी चाहिए कि Google ने मैसेज भेज दिया है.

Google ने आपको जो मैसेज भेजा है उसकी पुष्टि करने के लिए,

  1. मैसेज के X-Goog-Signature हेडर को पार्स करें. यह मैसेज के मुख्य पेलोड की हैश की गई, base64 कोड में बदली गई कॉपी होती है.
  2. अपने क्लाइंट टोकन का इस्तेमाल करके, जो आपने वेबहुक) कुंजी के तौर पर दिखाया था, मैसेज के पेलोड और base64-एन्कोड की बाइट की SHA512 एचएमएसी बनाएं.

  3. X-Goog-Signature हैश की तुलना अपने बनाए गए हैश से करें.

    • अगर हैश मेल खाते हैं, तो आपने पुष्टि की है कि Google ने मैसेज भेज दिया है.
    • अगर हैश मेल नहीं खाते हैं, तो किसी जाने-पहचाने मैसेज पर अपनी हैशिंग की प्रक्रिया देखें. अगर आपकी हैशिंग की प्रोसेस ठीक से काम कर रही है और आपको ऐसा मैसेज मिलता है कि आपको धोखाधड़ी से भेजा गया है, तो हमसे संपर्क करें. आपको Business Messages Google खाते से साइन इन करना होगा.

Java, Node.js, और Python में Echo Bots के लिए, मैसेज की पुष्टि करने के तरीके से जुड़ा मैसेज देखें.

स्थान-भाषा की पहचान करें

उपयोगकर्ता कई जगहों से और कई भाषाओं में बातचीत करते हैं. Business Messages सुविधा, उपयोगकर्ताओं की भाषा की प्राथमिकताओं को resolvedLocale और userDeviceLocale फ़ील्ड के साथ दिखाती है. ये फ़ील्ड, उनके डिवाइस की स्थान-भाषा की सेटिंग पर आधारित होते हैं. स्थानीय भाषा और स्थान-भाषा देखें.

जहां भी हो सके, उपयोगकर्ताओं की पसंद की भाषा के आधार पर मैसेज रूट करें और जवाब लिखें.

मैसेज को उसके संदर्भ के हिसाब से रूट करें

मैसेज का संदर्भ बताता है कि उपयोगकर्ता किस तरह की जानकारी चाहता है. उदाहरण के लिए, अगर कोई उपयोगकर्ता placeId वैल्यू की मदद से मैसेज भेजता है, तो उसने किसी खास जगह (placeId से पहचानी गई) को मैसेज भेजा. साथ ही, वे जगह से जुड़े सवाल पूछ सकते हैं. इसी तरह, अगर किसी मैसेज में nearPlaceId वैल्यू है, जिससे उपयोगकर्ता के आस-पास की जगह की पहचान की जाती है, तो हो सकता है कि उपयोगकर्ता को किसी खास जगह की जानकारी पता चले. हालांकि, एजेंट को बातचीत शुरू करने से पहले, उस जगह की पुष्टि कर लेनी चाहिए जिसे उपयोगकर्ता चैट करना चाहता है.

मैसेज के बारे में जानकारी देने के साथ, मैसेज को उस जगह पर भेजें जहां वह जवाब देना चाहते हैं:

  • अगर मैसेज किसी नई बातचीत में है और इस बारे में सवाल है, तो ऑटोमेशन के साथ जवाब दें.
  • अगर ऑटोमेशन से सवाल का जवाब नहीं मिलता है, तो उसे लाइव एजेंट के पास भेजें.
  • अगर मैसेज की स्थान-भाषा, आपके एजेंट की डिफ़ॉल्ट स्थान-भाषा से मेल नहीं खाती, तो मैसेज को उस लाइव एजेंट के पास भेजें, जो उस स्थान-भाषा के साथ काम करता है.
  • अगर सवाल किसी खास जगह के बारे में है, तो उस व्यक्ति को उस जगह के बारे में जानकारी दें.
  • अगर मैसेज किसी चल रही बातचीत में शामिल है, तो बातचीत में हिस्सा लेने वाले लाइव एजेंट को भेजें.

उपयोगकर्ता ने जो मैसेज भेजा है उसकी पहचान करें

उपयोगकर्ता तीन तरह के मैसेज भेज सकते हैं:

  • टेक्स्ट मैसेज फ़्रीफ़ॉर्म रिस्पॉन्स हैं.
  • इमेज मैसेज में, उपयोगकर्ता की अपलोड की गई इमेज के लिए हस्ताक्षर किया गया यूआरएल होता है.
  • सुझाव वाले मैसेज में, पोस्टबैक डेटा और सुझाई गई कार्रवाई का टेक्स्ट या सुझाया गया जवाब शामिल होता है.

मैसेज का कॉन्टेंट प्रोसेस करें

अगर आपका एजेंट ऑटोमेशन का इस्तेमाल करता है, तो उपयोगकर्ता के मैसेज का कॉन्टेंट, आपके एजेंट के तर्क और बातचीत के अगले जवाब के हिसाब से होना चाहिए.

उपयोगकर्ता के इंटेंट की पहचान करने का सबसे आसान तरीका, सुझाए गए जवाब या सुझाई गई कार्रवाई के पोस्टबैक डेटा का इस्तेमाल करना है. सुझाव से जुड़ा टेक्स्ट चाहे जो भी हो, पोस्टबैक डेटा मशीन से पढ़ा जा सकता है.

अगर कोई उपयोगकर्ता मैसेज भेजता है, तो आपका एजेंट, इस्तेमाल किए जा सकने वाले कीवर्ड के जवाब को पार्स कर सकता है या सामान्य भाषा की समझ (जैसे कि Dialogflow इंटिग्रेशन ) का इस्तेमाल करके, उपयोगकर्ता के मैसेज को प्रोसेस कर सकता है और आगे के पाथ की पहचान कर सकता है.

अगर आपके एजेंट को उपयोगकर्ता के मैसेज का जवाब देने का तरीका नहीं पता, तो उसे गड़बड़ी की स्थिति के हिसाब से जवाब देना चाहिए. साथ ही, उपयोगकर्ता को ज़्यादा जानकारी देने के लिए अनुरोध करना होगा, बातचीत के लिए कोई दूसरा तरीका अपनाना होगा या लाइव एजेंट से बातचीत करनी होगी.

उपयोगकर्ता को जवाब दें

ऑटोमेटेड एजेंट या लाइव एजेंट की मदद से, एजेंट सही जवाब की पहचान करके एक मैसेज भेजता है और उपयोगकर्ता के साथ बातचीत जारी रखता है.

जवाब लिखते समय, उपयोगकर्ता की स्थान-भाषा पर विचार करें. आपको मिलने वाले हर मैसेज में, userInfo ऑब्जेक्ट से वैल्यू लोड करके भी, रिस्पॉन्स को पसंद के मुताबिक बनाया जा सकता है.

मैसेज के टाइप

नीचे दिया गया कोड दिखाता है कि आपके एजेंट को मैसेज कैसे मिलते हैं.

फ़ॉर्मैटिंग और वैल्यू की जानकारी के लिए, UserMessage देखें.

टेक्स्ट

जवाब देने का सबसे आम तरीका है सादा टेक्स्ट. मैसेज का फ़ॉर्मैट नीचे दिया गया होता है.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "message": {
    "messageId": "MESSAGE_ID",
    "name": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "text": "MESSAGE_TEXT",
    "createTime": "MESSAGE_CREATE_TIME",
  },
  "dialogflowResponse": {
    "autoResponded": "BOOLEAN",
    "faqResponse": {
      "userQuestion": "USER_QUESTION",
      "answers": [{
        "faqQuestion": "FAQ_QUESTION",
        "faqAnswer": "FAQ_ANSWER",
        "matchConfidenceLevel": "CONFIDENCE_LEVEL",
        "matchConfidence": "CONFIDENCE_NUMERIC",
      }],
    },
  },
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, Message देखें.

इमेज

उपयोगकर्ता, मैसेज भेजने के अलावा आपके एजेंट को मैसेज के तौर पर इमेज भी भेज सकते हैं. Business Messages की मदद से, शेयर की गई इमेज को सात दिनों के लिए साइन किए गए यूआरएल पर सेव किया जाता है. साथ ही, इनमें मैसेज पेलोड के text फ़ील्ड में वे इमेज भी शामिल की जाती हैं.

अगर आपके एजेंट में ऑटोमेशन की सुविधा शामिल है, तो पक्का करें कि ऑटोमेशन का जवाब यह पता हो कि उपयोगकर्ता को इमेज कैसे शेयर करनी है. लाइव एजेंट के लिए, पक्का करें कि इमेज पास हो या मैसेज में मौजूद यूआरएल पर क्लिक किया जा सके.

...
"message": {
    "text": "https://storage.googleapis.com/business-messages-us/936640919331/jzsu6cdguNGsBhmGJGuLs1DS?x-goog-algorithm\u003dGOOG4-RSA-SHA256\u0026x-goog-credential\u003duranium%40rcs-uranium.iam.gserviceaccount.com%2F20190826%2Fauto%2Fstorage%2Fgoog4_request\u0026x-goog-date\u003d20190826T201038Z\u0026x-goog-expires\u003d604800\u0026x-goog-signedheaders\u003dhost\u0026x-goog-signature\u003d89dbf7a74d21ab42ad25be071b37840a544a43d68e67270382054e1442d375b0b53d15496dbba12896b9d88a6501cac03b5cfca45d789da3e0cae75b050a89d8f54c1ffb27e467bd6ba1d146b7d42e30504c295c5c372a46e44728f554ba74b7b99bd9c6d3ed45f18588ed1b04522af1a47330cff73a711a6a8c65bb15e3289f480486f6695127e1014727cac949e284a7f74afd8220840159c589d48dddef1cc97b248dfc34802570448242eac4d7190b1b10a008404a330b4ff6f9656fa84e87f9a18ab59dc9b91e54ad11ffdc0ad1dc9d1ccc7855c0d263d93fce6f999971ec79879f922b582cf3bb196a1fedc3eefa226bb412e49af7dfd91cc072608e98"
  }
...

फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, Message देखें.

सुझाव

सुझाए गए जवाबों और सुझाई गई कार्रवाइयों की मदद से, उपयोगकर्ता टैप करके जवाब दे सकते हैं या कार्रवाइयां कर सकते हैं. जब कोई उपयोगकर्ता किसी सुझाव पर टैप करता है, तो एजेंट को सुझाव वाले टेक्स्ट और पोस्टबैक डेटा के साथ एक पेलोड मिलता है.

सुझाव के मैसेज इस फ़ॉर्मैट में होते हैं.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "suggestionResponse": {
    "message": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "postbackData": "POSTBACK_DATA",
    "createTime": "RESPONSE_CREATE_TIME",
    "text": "SUGGESTION_TEXT",
    "suggestionType": "SUGGESTION_TYPE",
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, SuggestionResponse देखें.

पुष्टि करने का अनुरोध

पुष्टि करने के अनुरोध के सुझाव की मदद से उपयोगकर्ता, OAuth सेवा देने वाली कंपनी की मदद से साइन इन कर सकते हैं. इससे, एजेंट की पहचान की जानकारी मिलती है या एजेंट की ओर से, उपयोगकर्ताओं को कार्रवाई करने की अनुमति मिलती है. OAuth की मदद से पुष्टि करना देखें.

अगर कोई उपयोगकर्ता, OAuth की सेवा देने वाली खास कंपनी में साइन इन करता है, तो एजेंट को ऑथराइज़ेशन कोड के साथ पेलोड मिलता है. अगर कोई उपयोगकर्ता साइन इन नहीं कर पाता है, तो एजेंट को गड़बड़ी की जानकारी वाला पेलोड मिलता है.

पुष्टि के अनुरोध से जुड़े मैसेज का फ़ॉर्मैट नीचे दिया गया है.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "authenticationResponse": {
    "code": "AUTHORIZATION_CODE",
    "redirect_uri": "REDIRECT_URI",
    "errorDetails": {
      "error": "ERROR",
      "errorDescription": "ERROR_DESCRIPTION",
    },
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, AuthenticationResponse देखें.

मैसेज का संदर्भ

हर मैसेज में यह जानकारी होती है कि मैसेज कहां से आया है.

...
  "context": {
    "customContext": "CUSTOM_CONTEXT",
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "nearPlaceId": "NEARBY_LOCATION_PLACE_ID",
    "deflectedPhoneNumber": "DEFLECTED_PHONE_NUMBER",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
    "widget": {
      "url": "WEBSITE_URL",
      "widgetContext": "WIDGET_CONTEXT",
    },
  },
...
फ़ील्ड जानकारी
customContext पार्टनर की ओर से तय किया गया प्रसंग डेटा.
entryPoint वह मैसेज सेवा जिससे उपयोगकर्ता बातचीत शुरू करता है, जैसा कि EntryPoint में बताया गया है.
placeId उस जगह के लिए Google Places डेटाबेस से एक यूनीक आइडेंटिफ़ायर जहां उपयोगकर्ता ने मैसेज भेजा है. यह सिर्फ़ जगह के हिसाब से एंट्री पॉइंट के मैसेज में दिखता है.
nearPlaceId किसी लोकल पैक में पहली जगह के लिए, Google Places डेटाबेस का एक यूनीक आइडेंटिफ़ायर. nearPlaceId वैल्यू मिलने पर, उन जगहों की पुष्टि करें जहां उपयोगकर्ता चैट करना चाहते हैं.
deflectedPhoneNumber कारोबार का वह फ़ोन नंबर जिस पर Business Messages ने, बातचीत शुरू होने पर उपयोगकर्ता को कॉल करने से मना किया था.
resolvedLocale

उपयोगकर्ता की स्थान-भाषा (userDeviceLocale में रिपोर्ट की गई) और एजेंट की काम करने वाली स्थान-भाषा (तय बातचीत की सेटिंग से तय होती है) के लिए, सबसे बेहतर कंप्यूट मैच. स्थानीय भाषा के हिसाब से और बातचीत शुरू करें देखें.

स्थान-भाषा की वैल्यू, एक बढ़िया IETF BCP 47 भाषा वाला टैग है.

userInfo.displayName मैसेज भेजने वाले उपयोगकर्ता का नाम. अगर उपयोगकर्ता, पहचान शेयर करने की सुविधा से ऑप्ट आउट करता है, तो यह फ़ील्ड खाली रहता है.
userInfo.userDeviceLocale उपयोगकर्ता की जगह की जानकारी, उसके डिवाइस से मिली जानकारी के आधार पर. इसमें, IETF BCP 47 वाला भाषा का टैग जोड़ा गया है.
widget.url उस वेबसाइट का यूआरएल जहां बातचीत की जगह लॉन्च की गई थी.
widget.widgetContext बातचीत शुरू करने के लिए इस्तेमाल किया गया विजेट का data-bm-widget-context एट्रिब्यूट वैल्यू.

बातचीत का इतिहास

Google बातचीत का इतिहास उपलब्ध नहीं कराता. अपनी निजता बनाए रखने और सबसे सही तरीकों का पालन करते हुए, अपनी बातचीत को सुरक्षित रखना न भूलें. इससे, आप उपयोगकर्ताओं से आने वाले मैसेज के लिए जवाब दे सकेंगे.