বার্তা গ্রহণ

আপনি Business Messages-এর সাথে নিবন্ধন করার পরে, আপনি আপনার পরীক্ষা এজেন্টের হয়ে বার্তা পেতে পারেন। আপনি সেই ব্র্যান্ডগুলির জন্য এজেন্ট তৈরি , যাচাই এবং লঞ্চ করার পরে আপনি যে ব্র্যান্ডগুলি পরিচালনা করেন তাদের জন্য বার্তাগুলি পেতে পারেন৷

যখন একজন গ্রাহক আপনার পরিচালনা করা একটি এজেন্টকে একটি বার্তা পাঠান, তখন ব্যবসা বার্তা আপনার ওয়েবহুকে একটি JSON পেলোড পাঠায় যাতে বিভিন্ন আইডি, বার্তা সামগ্রী এবং অবস্থানের তথ্য থাকে।

বার্তা বিতরণের সমস্যাগুলি ডিবাগ করতে ব্যবসায়িক যোগাযোগ বিকাশকারী কনসোল লগ পৃষ্ঠাটি ব্যবহার করুন৷

আগত বার্তা পরিচালনা করুন

আপনার এজেন্ট কীভাবে ব্যবহারকারীদের বার্তাগুলি পরিচালনা করে এবং প্রতিক্রিয়া জানায় তা আপনার ব্যবসার যুক্তির উপর নির্ভর করে। সাধারণত, যাইহোক, ব্যবহারকারীর বার্তায় প্রতিক্রিয়া জানানোর পদক্ষেপগুলি সামঞ্জস্যপূর্ণ।

বার্তা স্বীকার করুন

আপনার ওয়েবহুক দ্বারা প্রাপ্ত একটি বার্তা স্বীকার করতে, আপনার ওয়েবহুকে পাঠানো বার্তাগুলির একটি বৈধ HTTP প্রতিক্রিয়া ফেরত দিন৷

ডেলিভারি টাইম আউট, ওয়েবহুক রিডাইরেক্টিবিলিটি, রিডাইরেকশন বা অনুমতি সংক্রান্ত সমস্যার কারণে কোনো মেসেজ ডেলিভার করতে ব্যর্থ হলে, Google 7 দিনের জন্য বা আপনার ওয়েবহুক সফলভাবে মেসেজ না পাওয়া পর্যন্ত একাধিক পুনঃপ্রচার সহ বার্তাটি সঞ্চয় করে এবং ফরওয়ার্ড করে।

বার্তাটি Google থেকে এসেছে তা যাচাই করুন

বার্তার বিষয়বস্তু প্রক্রিয়া করার আগে আপনার যাচাই করা উচিত যে Google বার্তাটি পাঠিয়েছে৷

Google আপনার প্রাপ্ত একটি বার্তা পাঠিয়েছে তা যাচাই করতে,

  1. বার্তার X-Goog-Signature শিরোনাম পার্স করুন৷ এটি মেসেজ বডি পেলোডের একটি হ্যাশড, বেস64-এনকোডেড কপি।
  2. আপনার ক্লায়েন্ট টোকেন ব্যবহার করে (যা আপনি আপনার ওয়েবহুক কনফিগার করার সময় উপস্থাপিত হয়েছিল) একটি কী হিসাবে, বার্তা পেলোডের বাইটের একটি SHA512 HMAC তৈরি করুন এবং ফলাফলটি বেস64-এনকোড করুন।

  3. আপনার তৈরি হ্যাশের সাথে X-Goog-Signature হ্যাশের তুলনা করুন।

    • হ্যাশ মিলে গেলে, আপনি নিশ্চিত করেছেন যে Google মেসেজ পাঠিয়েছে।
    • যদি হ্যাশগুলি মেলে না, একটি পরিচিত-ভাল বার্তায় আপনার হ্যাশিং প্রক্রিয়াটি পরীক্ষা করুন৷ যদি আপনার হ্যাশিং প্রক্রিয়া সঠিকভাবে কাজ করে এবং আপনি এমন একটি বার্তা পান যা আপনি বিশ্বাস করেন যে প্রতারণামূলকভাবে আপনাকে পাঠানো হয়েছে,আমাদের সাথে যোগাযোগ করুন (আপনাকে অবশ্যই একটি ব্যবসায়িক বার্তা Google অ্যাকাউন্ট দিয়ে সাইন ইন করতে হবে)।

Java , Node.js , এবং Python- এর ইকো বটগুলির জন্য GitHub সংগ্রহস্থলে বার্তা যাচাইকরণের উদাহরণ দেখুন।

লোকেল শনাক্ত করুন

ব্যবহারকারীরা অনেক স্থান থেকে এবং অনেক ভাষায় যোগাযোগ করে। বিজনেস মেসেজ ব্যবহারকারীদের ভাষা পছন্দের প্রতিনিধিত্ব করে resolvedLocale লোকাল এবং userDeviceLocale ফিল্ডের সাথে, যা তাদের ডিভাইসের লোকেল সেটিংসের উপর ভিত্তি করে। স্থানীয়করণ এবং লোকেল দেখুন।

যখনই সম্ভব, ব্যবহারকারীদের ভাষার পছন্দের উপর ভিত্তি করে বার্তাগুলি রুট করুন এবং প্রতিক্রিয়া রচনা করুন৷

এর প্রেক্ষাপটের উপর ভিত্তি করে বার্তাটি রুট করুন

বার্তার প্রসঙ্গ জানিয়ে দেয় ব্যবহারকারী কী ধরনের তথ্য খুঁজছেন। উদাহরণস্বরূপ, যদি একজন ব্যবহারকারী একটি placeId মান সহ একটি বার্তা পাঠায়, তাহলে তারা একটি নির্দিষ্ট অবস্থানে বার্তা পাঠিয়েছে ( placeId দ্বারা চিহ্নিত) এবং সম্ভবত লোকেশন-নির্দিষ্ট প্রশ্ন জিজ্ঞাসা করতে পারে। একইভাবে, যদি একটি বার্তার কাছে একটি nearPlaceId মান থাকে, যা ব্যবহারকারীর কাছাকাছি একটি অবস্থান চিহ্নিত করে, ব্যবহারকারী সম্ভবত অবস্থান-নির্দিষ্ট তথ্য জানতে চান, তবে এজেন্টকে কথোপকথন শুরু করার আগে ব্যবহারকারীর সাথে চ্যাট করতে চান এমন অবস্থান নিশ্চিত করতে হবে।

বার্তাটির প্রসঙ্গ তথ্য সহ, বার্তাটিকে উত্তর দেওয়ার জন্য সবচেয়ে উপযুক্ত অবস্থানে রুট করুন:

  • যদি বার্তাটি একটি নতুন কথোপকথনে থাকে এবং এটি একটি সাধারণ প্রশ্ন হয়, তাহলে আপনি অটোমেশনের মাধ্যমে উত্তর দিতে পারেন।
  • যদি অটোমেশন প্রশ্নটি পরিচালনা করতে না পারে তবে এটি একটি লাইভ এজেন্টের কাছে রুট করুন।
  • যদি বার্তার লোকেল আপনার এজেন্টের ডিফল্ট লোকেলের সাথে মেলে না, তাহলে বার্তাটিকে একজন লাইভ এজেন্টের কাছে পাঠান যিনি সেই লোকেলকে সমর্থন করতে পারেন।
  • যদি প্রশ্নটি একটি নির্দিষ্ট অবস্থান সম্পর্কে হয়, তাহলে সেটিকে সেই অবস্থান সম্পর্কে তথ্য সহ কারো কাছে পাঠান।
  • যদি বার্তাটি একটি চলমান কথোপকথনে থাকে, তাহলে কথোপকথনে অংশগ্রহণকারী লাইভ এজেন্টের কাছে এটি রুট করুন।

ব্যবহারকারীর পাঠানো বার্তার ধরন সনাক্ত করুন

ব্যবহারকারীরা তিন ধরনের বার্তা পাঠাতে পারেন:

  • টেক্সট মেসেজ ফ্রিফর্ম প্রতিক্রিয়া।
  • ছবি বার্তা ব্যবহারকারীর আপলোড করা একটি ছবির জন্য একটি স্বাক্ষরিত URL অন্তর্ভুক্ত করে।
  • পরামর্শ বার্তাগুলির মধ্যে পোস্টব্যাক ডেটা এবং প্রস্তাবিত ক্রিয়াকলাপের পাঠ্য বা ব্যবহারকারী ট্যাপ করা প্রস্তাবিত উত্তর অন্তর্ভুক্ত করে৷

বার্তা বিষয়বস্তু প্রক্রিয়া

আপনার এজেন্ট অটোমেশন ব্যবহার করলে, ব্যবহারকারীর বার্তার বিষয়বস্তু আপনার এজেন্টের যুক্তি এবং কথোপকথনের পরবর্তী প্রতিক্রিয়া নির্দেশ করবে।

ব্যবহারকারীর অভিপ্রায় সনাক্ত করার সবচেয়ে সহজ উপায় হল একটি প্রস্তাবিত উত্তর বা প্রস্তাবিত পদক্ষেপ থেকে পোস্টব্যাক ডেটা। পরামর্শের সাথে যুক্ত পাঠ্য নির্বিশেষে, পোস্টব্যাক ডেটা মেশিন-পাঠযোগ্য।

যদি একজন ব্যবহারকারী একটি টেক্সট বার্তা পাঠায়, আপনার এজেন্ট সমর্থিত কীওয়ার্ডগুলির জন্য প্রতিক্রিয়া বিশ্লেষণ করতে পারে বা স্বাভাবিক ভাষা বোঝার ব্যবহার করতে পারে (যেমন ব্যবহারকারীর বার্তা প্রক্রিয়া করার জন্য ডায়ালগফ্লো ইন্টিগ্রেশনের সাথে এবং এগিয়ে যাওয়ার পথ সনাক্ত করতে পারে৷

আপনার এজেন্ট যদি ব্যবহারকারীর বার্তার প্রতিক্রিয়া জানাতে না জানে, তবে এটি একটি ত্রুটির অবস্থার সাথে প্রতিক্রিয়া জানাতে হবে এবং ব্যবহারকারীকে অতিরিক্ত তথ্যের জন্য অনুরোধ করে, অন্যভাবে ইনপুট চাওয়ার মাধ্যমে বা হস্তান্তর করে কথোপকথন চালিয়ে যাওয়ার চেষ্টা করবে। একটি লাইভ এজেন্টের সাথে কথোপকথন।

ব্যবহারকারীকে সাড়া দিন

এজেন্ট সঠিক প্রতিক্রিয়া সনাক্ত করার পরে - হয় অটোমেশন বা লাইভ এজেন্টের মাধ্যমে - এটি একটি বার্তা পাঠায় এবং ব্যবহারকারীর সাথে কথোপকথন চালিয়ে যায়।

একটি প্রতিক্রিয়া রচনা করার সময়, ব্যবহারকারীর লোকেল বিবেচনা করুন৷ আপনি প্রাপ্ত প্রতিটি বার্তায় 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 দেখুন।

ছবি

পাঠ্য পাঠানোর পাশাপাশি, ব্যবহারকারীরা আপনার এজেন্টকে বার্তা হিসাবে ছবি পাঠাতে পারে। ব্যবসায়িক বার্তাগুলি স্বাক্ষরিত URL- এ 7 দিনের জন্য শেয়ার করা ছবিগুলি সঞ্চয় করে এবং সেই URLগুলিকে বার্তা পেলোডের text ক্ষেত্রে অন্তর্ভুক্ত করে৷

আপনার এজেন্ট যদি অটোমেশন অন্তর্ভুক্ত করে তবে নিশ্চিত করুন যে কোনও ব্যবহারকারী কোনও ছবি শেয়ার করলে অটোমেশন কীভাবে প্রতিক্রিয়া জানাতে পারে তা নিশ্চিত করুন। লাইভ এজেন্টদের জন্য, নিশ্চিত করুন যে ছবিগুলি পাস করা হয়েছে বা বার্তাগুলির URLগুলি ক্লিকযোগ্য৷

...
"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 যে ফোন নম্বরটি ব্যবসায়িক বার্তাগুলি কথোপকথন শুরু হওয়ার সময় ব্যবহারকারীকে কল করা থেকে বিরত করেছিল৷
resolvedLocale

ব্যবহারকারীর লোকেলের সর্বোত্তম গণনা করা মিল ( userDeviceLocale এ রিপোর্ট করা হয়েছে) এবং এজেন্টের সমর্থিত লোকেল (নির্দিষ্ট কথোপকথন সেটিংস দ্বারা নির্ধারিত)। স্থানীয়করণ দেখুন এবং কথোপকথন শুরু করুন

লোকেল মান হল একটি সুগঠিত IETF BCP 47 ভাষা ট্যাগ।

userInfo.displayName যে ব্যবহারকারী বার্তা পাঠিয়েছেন তার নাম। যদি ব্যবহারকারী পরিচয় ভাগ করে নেওয়ার অপ্ট আউট করেন, এই ক্ষেত্রটি খালি থাকে৷
userInfo.userDeviceLocale ব্যবহারকারীর লোকেল, তাদের ডিভাইস দ্বারা রিপোর্ট করা হয়েছে, একটি সুগঠিত IETF BCP 47 ভাষা ট্যাগ হিসাবে।
widget.url ওয়েবসাইটের URL যেখানে কথোপকথন সারফেস চালু হয়েছে।
widget.widgetContext কথোপকথন শুরু করতে ব্যবহৃত data-bm-widget-context বৈশিষ্ট্যের মান।

কথোপকথনের ইতিহাস

Google কথোপকথনের ইতিহাস প্রদান করে না। আপনার গোপনীয়তা নীতি এবং সর্বোত্তম অনুশীলনের সাথে সঙ্গতিপূর্ণভাবে আপনার নিজস্ব ঐতিহাসিক কথোপকথন বজায় রাখুন, যাতে আপনি ব্যবহারকারীদের কাছ থেকে ভবিষ্যতের বার্তাগুলিতে অবহিত প্রতিক্রিয়া পাঠাতে পারেন।