หลังจากที่คุณลงทะเบียนกับ Business ข้อความ คุณสามารถรับข้อความในนามของตัวแทนทดสอบได้ คุณรับข้อความได้ สำหรับแบรนด์ที่คุณจัดการหลังจากที่คุณ สร้าง ยืนยัน และ เปิดตัว ให้กับแบรนด์เหล่านั้น
เมื่อลูกค้าส่งข้อความถึงตัวแทนที่คุณจัดการ Business Messages ส่งเพย์โหลด JSON ไปยังเว็บฮุคของคุณที่มีรหัส เนื้อหาข้อความ ที่หลากหลาย และข้อมูลตำแหน่ง
ใช้บันทึกใน Business Communications Developer Console เพื่อแก้ปัญหาในการส่งข้อความ
จัดการข้อความขาเข้า
วิธีที่ตัวแทนของคุณจัดการและตอบกลับข้อความจากผู้ใช้จะขึ้นอยู่กับว่า ในตรรกะทางธุรกิจของคุณ อย่างไรก็ตาม โดยทั่วไป ขั้นตอนในการตอบกลับผู้ใช้ มีความสอดคล้อง
ยอมรับข้อความ
หากต้องการรับทราบข้อความที่เว็บฮุคได้รับ ให้แสดงการตอบกลับ HTTP ที่ถูกต้อง ไปยังข้อความที่ส่งไปยังเว็บฮุคของคุณ
หากระบบส่งข้อความไม่สำเร็จเนื่องจากหมดเวลานำส่ง ความสามารถในการเข้าถึงของเว็บฮุค ปัญหาการเปลี่ยนเส้นทาง หรือสิทธิ์ Google จะจัดเก็บและส่งต่อข้อความ ลองใหม่หลายครั้งเป็นเวลา 7 วันหรือจนกว่าเว็บฮุคจะได้รับ
ยืนยันว่าข้อความนี้มาจาก Google
คุณควรยืนยันว่า Google ได้ส่งข้อความแล้วก่อนที่จะประมวลผลข้อความ เนื้อหา
หากต้องการยืนยันว่า Google ได้ส่งข้อความที่คุณได้รับแล้ว
- แยกวิเคราะห์ส่วนหัว
X-Goog-Signature
ของข้อความ นี่คือรูปแบบที่แฮช สำเนาที่เข้ารหัส base64 ของเพย์โหลดเนื้อหาข้อความ การใช้โทเค็นไคลเอ็นต์ (ซึ่งแสดงเมื่อกำหนดค่า เว็บฮุค) เป็นคีย์ ให้สร้าง SHA512 HMAC ของจำนวนไบต์ของเพย์โหลดข้อความ base64-encode ผลลัพธ์
เปรียบเทียบแฮช
X-Goog-Signature
กับแฮชที่คุณสร้าง- หากแฮชตรงกันเป็นการยืนยันว่า Google เป็นผู้ส่งข้อความแล้ว
- หากแฮชไม่ตรงกัน ให้ตรวจสอบขั้นตอนการแฮชกับแอตทริบิวต์ที่ทราบแล้ว หากกระบวนการแฮชของคุณทำงานอย่างถูกต้อง และคุณได้รับ ที่คุณเชื่อว่าส่งมาถึงคุณโดยมิชอบ ติดต่อเรา (คุณต้องลงนาม ด้วยบัญชี Google Business Messages)
ดูตัวอย่างการยืนยันข้อความในที่เก็บ GitHub สำหรับบ็อต Echo ใน Java Node.js และ Python
ระบุภาษา
ผู้ใช้จะสื่อสารได้จากหลายสถานที่และหลายภาษา Business Messages
แสดงถึงผู้ใช้ ค่ากำหนดภาษาที่มี resolvedLocale
และ
userDeviceLocale
ช่องซึ่งอิงตามอุปกรณ์ การตั้งค่าภาษา
ดูการแปลและ
ภาษา
กำหนดเส้นทางข้อความและเขียนคำตอบตามของผู้ใช้ทุกครั้งที่เป็นไปได้ ภาษา การตั้งค่าเริ่มต้น
กำหนดเส้นทางข้อความตามบริบท
บริบทข้อความจะบอกให้ทราบว่าผู้ใช้อาจกำลังมองหาข้อมูลประเภทใด
เช่น หากผู้ใช้ส่งข้อความที่มี
placeId
ลูกค้าได้ส่งข้อความถึงสถานที่ตั้งที่เฉพาะเจาะจง (ระบุโดย placeId
) และเป็น
มักจะถามคำถามที่เจาะจงสถานที่ตั้ง ในทำนองเดียวกัน ถ้าข้อความมี
ค่า nearPlaceId
ซึ่งระบุสถานที่ตั้งใกล้กับผู้ใช้ ซึ่งผู้ใช้น่าจะ
ต้องการทราบข้อมูลเฉพาะพื้นที่ แต่ตัวแทนควรยืนยัน
สถานที่ที่ผู้ใช้ต้องการแชทด้วยก่อนเริ่มการสนทนา
กำหนดเส้นทางข้อความไปยังตำแหน่งที่ดีที่สุดเมื่อมีข้อมูลบริบทของข้อความ เหมาะสำหรับตอบสนอง:
- ถ้าข้อความอยู่ในการสนทนาใหม่ และเป็นคำถามทั่วไป คุณอาจ ด้วยการทำงานอัตโนมัติ
- หากการทำงานอัตโนมัติจัดการคำถามไม่ได้ ให้ส่งต่อคำถามไปยังตัวแทนแบบเรียลไทม์
- ถ้าภาษาของข้อความไม่ตรงกับภาษาเริ่มต้นของตัวแทน ให้กำหนดเส้นทาง ไปยังตัวแทนแบบเรียลไทม์ที่สามารถสนับสนุนภาษานั้นได้
- หากคําถามเกี่ยวข้องกับสถานที่ใดสถานที่หนึ่ง ให้ส่งต่อเรื่องไปยังผู้ที่มี ข้อมูลเกี่ยวกับตำแหน่งนั้น
- หากข้อความอยู่ในการสนทนาที่ดำเนินอยู่ ให้กำหนดเส้นทางข้อความไปยังตัวแทนแบบเรียลไทม์ มีส่วนร่วมในการสนทนา
ระบุประเภทข้อความที่ผู้ใช้ส่ง
ผู้ใช้จะส่งข้อความได้ 3 ประเภทดังนี้
- SMS คือคำตอบรูปแบบอิสระ
- ข้อความรูปภาพมี URL ที่ลงนามสำหรับรูปภาพที่ผู้ใช้ อัปโหลดแล้ว
- ข้อความคำแนะนำจะมีข้อมูลระบบรายงานผล Conversion และข้อความของ การดำเนินการที่แนะนำหรือคำตอบที่แนะนำซึ่งผู้ใช้แตะ
ประมวลผลเนื้อหาข้อความ
หากตัวแทนใช้การทำงานอัตโนมัติ เนื้อหาของข้อความสำหรับผู้ใช้ควรให้คำแนะนำ ตรรกะของ Agent และคำตอบถัดไปในการสนทนา
วิธีที่ง่ายที่สุดในการระบุเจตนาของผู้ใช้คือการใช้ข้อมูลระบบรายงานผล Conversion จาก คำตอบหรือการดำเนินการที่แนะนำ ไม่ว่าจะมีข้อความใดที่เชื่อมโยงกับ ข้อมูลระบบรายงานผล Conversion จะสามารถอ่านได้โดยเครื่อง
หากผู้ใช้ส่งข้อความ ตัวแทนของคุณอาจแยกวิเคราะห์การตอบกลับสำหรับ คำหลักที่สนับสนุน หรือใช้ความเข้าใจภาษาธรรมชาติ (เช่น Dialogflow การผสานรวม เพื่อประมวลผลข้อความของผู้ใช้และระบุเส้นทางส่งต่อ
ถ้าตัวแทนของคุณไม่ทราบวิธีตอบกลับข้อความของผู้ใช้ ตัวแทนควร ตอบกลับด้วยสถานะข้อผิดพลาดและพยายามสนทนาต่อโดย เพื่อให้ผู้ใช้สอบถามข้อมูลเพิ่มเติม ด้วยการขอให้ป้อนข้อมูลใน วิธีอื่น หรือส่งต่อการสนทนาให้กับตัวแทนแบบเรียลไทม์
ตอบกลับผู้ใช้
หลังจากที่ตัวแทนระบุการตอบกลับที่ถูกต้องไม่ว่าจะเป็นจากการทำงานอัตโนมัติหรือ ตัวแทนแบบเรียลไทม์ จะส่ง ข้อความ และสนทนากับผู้ใช้ต่อ
เมื่อเขียนคำตอบ ให้พิจารณาภาษาของผู้ใช้ นอกจากนี้ คุณยังสามารถ
ปรับแต่งการตอบกลับด้วยการเรียกค่าจากออบเจ็กต์ userInfo
ในแต่ละรายการ
ข้อความที่คุณได้รับ
ประเภทข้อความ
รหัสต่อไปนี้จะแสดงวิธีที่ตัวแทนรับข้อความ
สำหรับข้อมูลการจัดรูปแบบและค่า โปรดดู
UserMessage
ข้อความ
วิธีที่ใช้กันมากที่สุดสำหรับผู้ใช้ในการตอบกลับคือการใช้ข้อความธรรมดา SMS มี ในรูปแบบต่อไปนี้
{ "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 จะจัดเก็บรูปภาพที่แชร์เป็นเวลา 7 วันโดยมีเครื่องหมาย
URL
และรวม 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
คำแนะนำ
การตอบกลับที่แนะนำและการดำเนินการที่แนะนำช่วยให้ผู้ใช้ตอบกลับหรือดำเนินการได้ การทำงานด้วยการแตะ เมื่อผู้ใช้แตะคำแนะนำ ตัวแทนจะได้รับเพย์โหลด ด้วยข้อความแนะนำและข้อมูลระบบรายงานผล Conversion
ข้อความแนะนำจะมีรูปแบบดังต่อไปนี้
{ "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 จะได้รับเพย์โหลดที่มีรหัสการให้สิทธิ์ หากผู้ใช้ดำเนินการไม่สำเร็จใน กำลังลงชื่อเข้าใช้ ตัวแทนจะได้รับเพย์โหลดที่มีรายละเอียดข้อผิดพลาด
ข้อความคำขอการตรวจสอบสิทธิ์จะมีรูปแบบต่อไปนี้
{ "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 สถานที่สำหรับ
ในแพ็กในพื้นที่ ยืนยันสถานที่ที่ผู้ใช้ต้องการแชท
ด้วยเมื่อคุณได้รับค่า nearPlaceId |
deflectedPhoneNumber |
หมายเลขโทรศัพท์ที่ Business Messages ปฏิเสธไม่ให้ผู้ใช้โทร เวลาที่การสนทนาเริ่มต้นขึ้น |
resolvedLocale |
การจับคู่ที่ดีที่สุดที่คำนวณไว้สำหรับภาษาของผู้ใช้ (รายงานใน
ค่าภาษาเป็นแท็กภาษา IETF BCP 47 ที่มีรูปแบบถูกต้อง |
userInfo.displayName |
ชื่อของผู้ใช้ที่ส่งข้อความ หากผู้ใช้เลือกไม่ใช้ การแชร์ข้อมูลประจำตัว ฟิลด์นี้จะว่างเปล่า |
userInfo.userDeviceLocale |
ภาษาของผู้ใช้ซึ่งรายงานตามอุปกรณ์ของผู้ใช้ และอยู่ในรูปแบบที่ถูกต้อง แท็กภาษา IETF BCP 47 |
widget.url |
URL ของเว็บไซต์ที่เปิดตัวแพลตฟอร์มการสนทนา |
widget.widgetContext |
data-bm-widget-context ของแอตทริบิวต์ของวิดเจ็ตที่ใช้
เพื่อเริ่มการสนทนา |
ประวัติการสนทนา
Google ไม่ได้ให้ประวัติการสนทนา ดูประวัติของตัวเอง ในลักษณะที่สอดคล้องกับ นโยบายส่วนบุคคลและแนวทางปฏิบัติแนะนำของคุณ เพื่อให้คุณส่งคำตอบที่มีข้อมูลที่เป็นประโยชน์สำหรับข้อความในอนาคตจากผู้ใช้ได้