respond-io
New
🚀 TikTok Business Messaging เริ่มเปิดให้บริการแล้ว! เปลี่ยนบทสนทนาให้เป็นการแปลงอย่างราบรื่น เรียนรู้เพิ่มเติม
arrow-icon

หน้าแรก >

ช่องทาง >
ช่องที่กำหนดเอง >
การเริ่มต้นอย่างรวดเร็วของช่องทางที่กำหนดเอง

การเริ่มต้นอย่างรวดเร็วของช่องทางที่กำหนดเอง

Avatar
JQ Lee
· 05 Nov 2024
2 min read

การบูรณาการนี้ช่วยให้ทีมของคุณสามารถสนทนากับลูกค้าผ่านช่องทางการส่งข้อความใดๆ ก็ได้ผ่านการใช้งานแบบกำหนดเอง

การเชื่อมต่อช่องทางที่กำหนดเอง

ขั้นตอนที่ 1: ไปที่ การตั้งค่า > ช่อง

ขั้นตอนที่ 2: คลิก เพิ่มช่อง > ช่องที่กำหนดเอง > เชื่อมต่อ

ขั้นตอนที่ 3: ป้อน URL Webhook ปลายทางที่จะส่งข้อความขาออก

ขั้นตอนที่ 4: เลือกประเภท ID สำหรับช่อง > คลิก ถัดไป

ประเภท ID ใช้สำหรับระบุตัวตนของผู้ใช้และใช้ในการสื่อสารกับเซิร์ฟเวอร์รวมที่กำหนดเองของคุณ

ID มีให้เลือก 2 ประเภท:

  1. หมายเลขโทรศัพท์: ใช้สิ่งนี้หากผู้ให้บริการการส่งข้อความจดจำผู้ติดต่อตามหมายเลขโทรศัพท์ของพวกเขา

    1. รูปแบบตัวอย่าง: +60177872890

  2. ID ที่กำหนดเอง: ใช้สิ่งนี้หากผู้ให้บริการการส่งข้อความจดจำผู้ติดต่อตาม ID ที่สร้างขึ้นเอง

    1. ความยาวอักขระสูงสุดคือ 50 ตัว

    2. AZ,az,0-9,_,=,+,/และ@ได้รับอนุญาต

ขั้นตอนที่ 5: กล่องโต้ตอบต่อไปนี้จะให้Channel ID,API TokenและWebhook URLเช่น

  1. รหัสช่อง:gfd8g7fd89dgfd

  2. โทเค็น API:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd

  3. URL เว็บฮุก:https://app.respond.io/custom/channel/webhook/

    การใช้ประเภท ID หมายเลขโทรศัพท์ช่วยให้คุณสามารถเริ่มการสนทนาและส่งข้อความแรกไปยังผู้ติดต่อได้

ส่งข้อความไปยัง respond.io

URL ของ Webhookใช้เพื่อโพสต์ข้อความ,การส่งข้อความสะท้อนและการรับข้อความไปยังแพลตฟอร์ม respond.io

โค้ดที่ให้มาจะทริกเกอร์เว็บฮุกบน respond.io โดยสร้างผู้ติดต่อหากจำเป็น และบันทึกข้อความภายใต้ผู้ติดต่อนั้น

ตัวอย่างสำหรับข้อความ

curl -X POST \\  
  https://app.respond.io/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "message": {  
        "type": "text",  
        "text": "สวัสดีโลก"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": "",  
    "รหัสประเทศ": "MY",  
    "อีเมล": "[email protected]",  
    "โทรศัพท์": "+60177872890",  
    "ภาษา": "en"  
  }  
}'

ตัวอย่างสำหรับการส่งข้อความ Echoes

curl -X POST \\  
  https://app.respond.io/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message\_echo",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "message": {  
        "type": "text",  
        "text": "สวัสดีโลก"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": ""  
    "รหัสประเทศ": "MY"  
    "อีเมล": "[email protected]"  
    "โทรศัพท์": "+60177872890"  
    "ภาษา": "en"  
  }  
}'

ตัวอย่างการส่งข้อความใบเสร็จ

curl -X POST \\  
  https://app.respond.io/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message\_status"  
      "mId": "xcvzzxcxczxczxc"  
      "timestamp": 2132131321000  
      "status": {  
        "value": "ส่ง|ส่งแล้ว|อ่าน|ล้มเหลว"  
        "message": "ข้อผิดพลาด: การส่งล้มเหลวเนื่องจากโทเค็นไม่ถูกต้อง"  
      }  
  \]  
}'

สนาม

คำอธิบาย

การตรวจสอบความถูกต้อง

รหัสช่อง

รหัสช่องที่ไม่ซ้ำกัน

ที่จำเป็น. เขตข้อมูลที่มีเอกลักษณ์เฉพาะ สร้างโดย respond.io

เบอร์ติดต่อ

รหัสติดต่อเฉพาะ

ที่จำเป็น. รหัสติดต่อ respond.io ที่ไม่ซ้ำใคร สูงสุด 50 ตัวอักษร

ประเภทกิจกรรม

ประเภทกิจกรรม

ที่จำเป็น. ประเภทที่มี: ข้อความ, message_echo และ message_status

กิจกรรม.mld

รหัสข้อความ

ที่จำเป็น. รหัสข้อความที่ไม่ซ้ำกัน สูงสุด 50 ตัวอักษร

เหตุการณ์.ประทับเวลา

เวลายุค UNIX (มิลลิวินาที)

ที่จำเป็น. เวลาของเหตุการณ์ที่ทำให้เกิดการโทรกลับ

เหตุการณ์.ข้อความ.ชนิด

ประเภทข้อความ

ที่จำเป็น. ประเภทข้อความที่มี: ข้อความ, ไฟล์แนบ, สถานที่ และตอบกลับด่วน ดูที่ส่วนประเภทข้อความสำหรับตัวอย่างประเภทข้อความอื่น ๆ

เหตุการณ์.ข้อความ.ข้อความ

ข้อความ

ที่จำเป็น. ความยาวสูงสุด 7,000 ตัวอักษร

เหตุการณ์.สถานะ.ค่า

ข้อความ

จำเป็นหาก event.type เป็น message_status ค่าสถานะที่มีอยู่: ส่งแล้ว, ส่งมอบแล้ว, อ่าน และล้มเหลว

เหตุการณ์.สถานะ.ข้อความ

ข้อความ

จำเป็นต้องมีหาก events.status.value ล้มเหลว

ติดต่อ.ชื่อจริง

ชื่อจริง

ไม่จำเป็น. สูงสุด 50 ตัวอักษร

นามสกุลผู้ติดต่อ

นามสกุล

ไม่จำเป็น. สูงสุด 50 ตัวอักษร

ติดต่อ.รูปโปรไฟล์

URL รูปโปรไฟล์

ไม่จำเป็น. ขนาดของอวาตาร์ไม่ควรเกิน 100 kb. แนะนำ 720x720.

ติดต่อสถานที่

รหัสสถานที่

ไม่จำเป็น. โปรดดูรายการค่าที่นี่

ติดต่อ.รหัสประเทศ

รหัสประเทศ

ไม่จำเป็น. รหัสประเทศ 2 ตัวอักษร - รหัส ISO ALPHA-2

ติดต่อ.เขตเวลา

เขตเวลา

ไม่จำเป็น. (ต่ำสุด: -24) (สูงสุด: 24)

ติดต่ออีเมล์

ที่อยู่อีเมล

ไม่จำเป็น. สูงสุด 50 ตัวอักษร

ติดต่อ.โทรศัพท์

หมายเลขโทรศัพท์

ไม่จำเป็น. สูงสุด 18 ตัวอักษร

ติดต่อภาษา

ภาษา

ไม่จำเป็น. ISO 639-1.

ตอบกลับ - สำเร็จ (สถานะ HTTP → 200)

"ตกลง"

จัดการข้อความขาออกจาก respond.io

respond.io จะเรียกจุดสิ้นสุด<API Base URL>/message

ตรวจสอบให้แน่ใจว่าคุณใช้โค้ดOutgoing Messageบนเส้นทาง/messageของเว็บเซิร์ฟเวอร์ของคุณ

นี่คือตัวอย่าง cURL ของ response.io ที่เรียกใช้จุดสิ้นสุด:

curl -X POST \\  
  /message \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
	"channelId": "gfd8g7fd89dgfd",  
	"contactId": "+60177872890",  
	"message": {  
		"type": "text",  
		"ข้อความ": "สวัสดีโลก"  
	}  
}'

ตอบกลับ - สำเร็จ (สถานะ HTTP → 200)

{  
	"mId": "1640141607842"  
}

การตรวจสอบสิทธิ์ต้องเกิดขึ้นที่จุดสิ้นสุดก่อนที่จะส่งข้อความไปยังผู้ให้บริการส่งข้อความ

นี่คือตัวอย่างของการใช้ express middleware เพื่อวัตถุประสงค์นี้:

const {validationResult} = require('express-validator');

const validateToken = (req, res, next) => {
    const apiToken = <>
    const bearerToken = req.headers.authorization;

    if (!bearerToken)
        return res.send(401)

    const token = bearerToken.substring(7, bearerToken.length);

    if (apiToken !== token) {
        return res.send(401)
    }
    next();
};

โมดูล.exports = {
    validateToken
};

เราได้รวมตัวอย่างของ Custom Channel ที่คุณสามารถทดสอบบนเซิร์ฟเวอร์ของคุณได้แล้ว ลองดูโครงการ GitHub ของเรา ที่นี่

ประเภทข้อความ

ตัวอย่างสำหรับข้อความ

{  
  "type": "ข้อความ",  
  "ข้อความ": "ยินดีต้อนรับสู่ respond.io",  
}

สนาม

คำอธิบาย

การตรวจสอบความถูกต้อง

พิมพ์

ประเภทข้อความ

ที่จำเป็น. ข้อความ

ข้อความ

ข้อความ

ที่จำเป็น. ความยาวสูงสุด 7,000 ตัวอักษร

ตัวอย่างสำหรับไฟล์สื่อ

{  
  "type": "ไฟล์แนบ",  
  "ไฟล์แนบ": {  
    "type": "รูปภาพ|วิดีโอ|เสียง|ไฟล์",  
    "url": "https://abc/japan.png",  
    "mimeType": "image/png",  
    "fileName":"company logo.png",  
    "description": "โลโก้บริษัทล่าสุด"  
  }  
}

สนาม

คำอธิบาย

การตรวจสอบความถูกต้อง

พิมพ์

ประเภทข้อความ

ที่จำเป็น. สิ่งที่แนบมา

ประเภทไฟล์แนบ

ประเภทไฟล์แนบ

ที่จำเป็น. ประเภทไฟล์แนบที่ใช้ได้: รูปภาพ วิดีโอ เสียง และไฟล์

ไฟล์แนบ.url

URL

ที่จำเป็น. สูงสุด 2,000 ตัวอักษร ตรวจสอบให้แน่ใจว่าเป็นลิงก์สาธารณะเพื่อให้ผู้ใช้หรือผู้ติดต่อสามารถเห็นเนื้อหาได้

ไฟล์แนบ.mimeType

ประเภท MIME ของสิ่งที่แนบมา

ไม่จำเป็น

ไฟล์แนบ.ชื่อไฟล์

ชื่อไฟล์

ไม่จำเป็น. ชื่อไฟล์ควรมีนามสกุลไฟล์ด้วย สูงสุด 256 ตัวอักษร (รวมนามสกุลไฟล์) การส่งไฟล์ที่ไม่มีนามสกุลไฟล์หรือนามสกุลไฟล์ไม่ถูกต้องอาจทำให้ผู้ติดต่อหรือผู้ใช้ไม่สามารถเปิดไฟล์นั้นได้

สิ่งที่แนบมา.คำอธิบาย

คำอธิบายไฟล์

ไม่จำเป็น. สูงสุด 256 ตัวอักษร ใช้ได้เฉพาะกับไฟล์ attachment.type = image เท่านั้น

ตรวจสอบให้แน่ใจว่า URL ของไฟล์แนบ'ไม่ถูกดาวน์โหลดโดยเบราว์เซอร์โดยบังคับ การตอบสนองของ HTTP's Content-Disposition ส่วนหัวควรมีค่าเริ่มต้น ซึ่งคือ อินไลน์

ตัวอย่างสำหรับตำแหน่ง

{  
  "type": "location",  
  "latitude": 0.123456,  
  "longitude": -0.1234,  
  "address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"  
}

สนาม

คำอธิบาย

การตรวจสอบความถูกต้อง

พิมพ์

ประเภทข้อความ

ที่จำเป็น. ที่ตั้ง.

ละติจูด

พิกัด

ที่จำเป็น. ละติจูด (±90°) ภายในช่วงที่ถูกต้อง

ลองจิจูด

พิกัด

ที่จำเป็น. ลองจิจูด (±180°) ภายในช่วงที่ถูกต้อง

ที่อยู่

ที่ตั้ง ที่อยู่

ไม่จำเป็น. สูงสุด 256 ตัวอักษร

ตัวอย่างสำหรับการตอบกลับอย่างรวดเร็ว

{  
  "type": "quick\_reply",  
  "title": "เลือกภาษาที่คุณต้องการ",    
  "replies": \[  
    "มาเลย์",  
    "อังกฤษ"  
  \]  
}

สนาม

คำอธิบาย

การตรวจสอบความถูกต้อง

พิมพ์

ประเภทข้อความ

ที่จำเป็น. ตอบกลับอย่างรวดเร็ว

ชื่อ

หัวข้อตอบกลับด่วน

ที่จำเป็น. สูงสุด 256 ตัวอักษร

ตอบกลับ

ตอบกลับข้อความ

ที่จำเป็น. ตอบกลับได้สูงสุด 10 ข้อความ โดยแต่ละข้อความมีความยาวสูงสุด 256 ตัวอักษร

รหัสข้อผิดพลาด

ข้อผิดพลาด (สถานะ HTTP → 4xx)

การกำหนดค่าช่องทาง

ขั้นตอนที่ 1: คลิก การตั้งค่า > ช่อง

ขั้นตอนที่ 2: ค้นหาช่องที่กำหนดเอง > คลิก จัดการ

ขั้นตอนที่ 3: ในหน้าการกำหนดค่าช่องแบบกำหนดเอง คุณจะเห็นการกำหนดค่าต่อไปนี้:

  • ไอคอนช่อง - อัปโหลดรูปภาพที่จะใช้เป็นไอคอนสำหรับช่องที่กำหนดเองของคุณ

  • ชื่อช่อง - ชื่อช่องสามารถเปลี่ยนแปลงได้ และใช้ภายในเพื่อระบุช่องได้

  • URL ของเว็บฮุกสำหรับข้อความขาออก — URL ของเว็บฮุกสำหรับข้อความขาออกไปยังช่องนี้

  • URL ของเว็บฮุกสำหรับข้อความขาเข้า — URL ของเว็บฮุกสำหรับข้อความขาเข้าไปยังช่องนี้

  • ประเภท ID — ใช้สำหรับระบุตัวตนของผู้ใช้และใช้ในการสื่อสารกับเซิร์ฟเวอร์รวมที่กำหนดเองของคุณ

  • ID ช่อง — ID ช่องเฉพาะเพื่อระบุช่องที่กำหนดเองของคุณ

  • โทเค็น API — ตัวระบุเฉพาะที่ใช้เพื่อพิสูจน์ตัวตนของผู้ใช้ในการเข้าถึง API

ขั้นตอนที่ 4: คลิก บันทึกการเปลี่ยนแปลง เพื่ออัปเดตการกำหนดค่าช่องแบบกำหนดเอง

คำถามที่พบบ่อยและการแก้ไขปัญหา

ฉันสามารถเชื่อมต่อแชทจากแพลตฟอร์มอื่นโดยใช้ช่องทางที่กำหนดเองได้หรือไม่

ใช่คุณทำได้ มีสามขั้นตอนที่ต้องปฏิบัติตาม:

  1. ใน response.io ให้ป้อน URL เว็บฮุกปลายทาง จากแพลตฟอร์มอื่นลงในฟิลด์ URL เว็บฮุก สำหรับข้อความขาเข้า

  2. ในแพลตฟอร์มอื่น ให้ตั้งค่า URL เว็บฮุก ที่ชี้ไปที่ respond.io เพื่อให้ผู้ติดต่อสามารถส่งข้อความกลับไปที่คุณได้

  3. คุณจะต้องมี เซิร์ฟเวอร์การรวมแบบกำหนดเอง เพื่อแปล API จากทั้ง respond.io และแพลตฟอร์มอื่น ซึ่งจะช่วยให้สามารถแลกเปลี่ยนข้อความระหว่างกันได้

ตรวจสอบให้แน่ใจว่าได้ยืนยันกับแพลตฟอร์มอื่นแล้วว่าสองขั้นตอนแรกเป็นไปได้

คำถามที่พบบ่อยสำหรับเว็บฮุกช่องทางที่กำหนดเอง

เหตุใดเว็บฮุกจึงส่งคืนสถานะ 200 แม้ว่าข้อความจะไม่สามารถส่งไปยัง respond.io ได้ก็ตาม

เมื่อเชื่อมต่อช่องทางที่กำหนดเอง ข้อความที่ส่งไปยัง respond.io ผ่านเว็บฮุกจะส่งคืนรหัสสถานะ 200 ทันทีเสมอ โดยไม่คำนึงว่าข้อความจะถูกส่งไปยัง respond.io สำเร็จหรือไม่ เนื่องมาจากลักษณะของเว็บฮุกที่ได้รับการออกแบบมาเพื่อตอบกลับทันทีโดยไม่ต้องตรวจสอบความสำเร็จในการส่งข้อความ

แชร์บทความนี้
Telegram
Facebook
Linkedin
Twitter

บทความที่เกี่ยวข้อง 👩‍💻

ภาพรวมช่องทางที่กำหนดเอง
รับภาพรวมของช่องทางที่กำหนดเองและความสามารถของมัน

ไม่พบสิ่งที่คุณกำลังมองหาใช่ไหม? 🔎