คุณสามารถสร้างบอทที่โต้ตอบกับบริการอื่นๆ ผ่าน API ได้ ตัวอย่างเช่น บอทสามารถส่งคำขอเพื่อตรวจสอบความพร้อมใช้งานสำหรับวันที่ระบุ หรือค้นหาสินค้าในร้านค้าออนไลน์
วิธีโต้ตอบกับ API ของบุคคลที่สามโดยใช้ Dadata เป็นตัวอย่าง
ลองใช้ API แนะนำที่อยู่เป็นตัวอย่าง: https://dadata.ru/api/suggest/address/ ลิงก์จะเปลี่ยนไป
อ่านเอกสารของ API บุคคลที่สามอย่างละเอียด
โปรดทราบ! API ของบุคคลที่สามต้องใช้ที่อยู่ IP ที่จะส่งคำขอ: 158.160.49.208 – เว็บไซต์
ในฟิลด์ "Request URL" ให้ป้อน https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address
ในฟิลด์ "Request header" ให้ป้อนส่วนหัวในรูปแบบ JSON: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token}
ในฟิลด์ "JSON parameters" ให้ป้อนคำขอ: {"query": "#{CurrencyType}"}
เพื่อรับผลลัพธ์ของคำขอ ให้กรอกฟิลด์ "Saved values"
ตัวอย่างของคำขอแสดงในภาพประกอบด้านล่าง
วิธีบันทึกค่าจากตัวแปร
อาจไม่ชัดเจนในครั้งแรก—คุณต้องลองด้วยตัวเองจริงๆ
ขั้นแรก ป้อน #{custom_answer} ในฟิลด์ "Answer" (ตัวแปร #{custom_answer} มีการตอบกลับที่ได้รับจากเซิร์ฟเวอร์ที่ระบุในฟิลด์ "Response URL")
รันบล็อกคำขอเพื่อส่งคำขอและรับการตอบกลับ การตอบกลับที่ได้รับต้องถูกวิเคราะห์ และคุณต้องตั้งค่าตัวแปรที่จะแยกออกมา โดยใช้ฟิลด์ "Saved Values"
มาดูตัวอย่างที่อธิบายไว้ข้างต้น
วิธีที่ดีที่สุดในการทำความเข้าใจวิธีการเข้าถึงข้อมูลใน JSON คือการใช้ตัวอย่าง จากผลลัพธ์ของคำขอของเรา การตอบกลับที่ได้รับใน #{custom_answer} มีลักษณะดังนี้:
{ "suggestions": [ { "value": "US Dollar", "unrestricted_value": "US Dollar", "data": { "code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States" } } ] }
ในฟิลด์ "Saved values" ให้ป้อน VALUE -> VARIABLE:
suggestions|0|value->CurrencyType;
suggestions|0|data|code->CurrencyDigCode;
suggestions|0|data|strcode->CurrencyStrCode;
suggestions|0|data|country->CurrencyCountry
suggestions - คีย์สำหรับอาร์เรย์ [{"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}]
suggestions|0 - คีย์สำหรับองค์ประกอบแรกของอาร์เรย์ {"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}
suggestions|0|value - คีย์สำหรับค่า "US Dollar"
คีย์ที่ยาวที่สุดใน JSON นี้:
suggestions|0|data|strcode - คีย์สำหรับค่า "USD"
คีย์ถูกคั่นด้วยเครื่องหมายทับแนวตั้ง (|) หากองค์ประกอบ JSON เป็นอาร์เรย์ คุณสามารถเข้าถึงรายการต่างๆ โดยใช้ดัชนี โดยเริ่มจาก 0 และเขียนโดยใช้เครื่องหมายทับแนวตั้งเช่นกัน
คุณต้องทำซ้ำการซ้อนทั้งหมด เพื่อความสะดวก คุณสามารถแสดง JSON โดยใช้แอปพลิเคชันดู JSON
ระดับการซ้อนถูกคั่นด้วยเครื่องหมายทับแนวตั้ง นั่นคือ คุณต้องระบุคีย์ทั้งหมดเพื่อไปถึงค่า โดยคั่นด้วยเครื่องหมายทับแนวตั้ง
หาก JSON มีอาร์เรย์ ให้ใช้ดัชนีขององค์ประกอบแทนคีย์ โดยเริ่มจากศูนย์
คั่นนิพจน์สำหรับรับตัวแปรของเราด้วยเครื่องหมายอัฒภาค ;
แต่ละนิพจน์ประกอบด้วยเส้นทางไปยังข้อมูลในการตอบกลับและชื่อของตัวแปรที่จะบันทึก โดยคั่นด้วย ->
คำค้นหาแสดงถึงเส้นทางใน JSON ไปยังค่าที่ต้องการ
การพัฒนา API สำหรับบอท
บอทรองรับคำขอ GET และ POST ซึ่งเป็นประเภทหลักที่ใช้ใน API สาธารณะส่วนใหญ่
GET คือคำขอที่เกิดขึ้นเมื่อคุณคลิกลิงก์หรือเปิด URL ในเบราว์เซอร์ พารามิเตอร์ในคำขอนี้จะถูกส่งใน URL
ไวยากรณ์สำหรับการส่งพารามิเตอร์: หลังจาก URL ให้ใส่เครื่องหมายคำถาม ? จากนั้นคั่นแต่ละพารามิเตอร์ด้วยเครื่องหมายแอมเปอร์แซนด์ & แต่ละพารามิเตอร์ประกอบด้วยชื่อตามด้วย = และค่าของมัน
ตัวอย่าง URL ที่มีพารามิเตอร์:
ที่นี่ พารามิเตอร์ q ถูกส่งด้วยค่า "good music" %20 แทนช่องว่าง
เมื่อทำงานกับตัวสร้าง คุณสามารถใช้ช่องว่างได้—บอทจะแทนที่โดยอัตโนมัติ
POST คือคำขอที่มักส่งเมื่อส่งแบบฟอร์มบนเว็บไซต์ พารามิเตอร์จะถูกส่งในเนื้อหาของคำขอ แม้ว่าจะสามารถส่งใน URL ได้เช่นเดียวกับคำขอ GET แต่ก็ไม่ธรรมดา พารามิเตอร์ในเนื้อหาสามารถอยู่ในรูปแบบ JSON หรือเป็นคู่คีย์-ค่า แบบฟอร์มมักจะส่งคู่คีย์-ค่า ในขณะที่ API ส่วนใหญ่มักใช้ JSON
Request header - คุณสามารถเพิ่มส่วนหัวให้กับแต่ละคำขอได้ โดยส่วนใหญ่มักจะระบุรูปแบบข้อมูลและคีย์การเข้าถึง โดยปกติฟิลด์นี้จะเว้นว่างไว้ แต่ในบางกรณี คุณต้องรวมโทเค็น API หรือประเภทคำขอ เช่น "Content-Type": "application/json"
JSON (JavaScript Object Notation, มักออกเสียง /ˈdʒeɪsən/ JAY-sən) เป็นรูปแบบการแลกเปลี่ยนข้อมูลแบบข้อความที่อิงจาก JavaScript เช่นเดียวกับรูปแบบข้อความอื่นๆ JSON อ่านง่ายสำหรับมนุษย์ ในการทำงานกับ API ในบอท คุณต้องเข้าใจรูปแบบนี้ เนื่องจากเป็นพื้นฐานของการโต้ตอบทั้งหมด
ก่อนดำเนินการต่อ ให้อ่านบทความต่อไปนี้:
https://www.json.org/json-ru.html
https://developer.mozilla.org/ru/docs/Learn/JavaScript/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B/JSON
นอกจากนี้ ลองสร้างไฟล์ JSON ของคุณเองบนเว็บไซต์นี้:
การปฏิบัติ
คำขอสามารถดำเนินการได้โดยบล็อกและเงื่อนไข คำขอแบบมีเงื่อนไขถูกออกแบบมาเพื่อตรวจสอบว่าการสนทนาสามารถดำเนินตามสาขาใดสาขาหนึ่งบนเว็บไซต์ได้หรือไม่ ในกรณีนี้ คำขอจะถูกส่งทุกครั้งที่มีการประเมินเงื่อนไขของสาขา ในทางกลับกัน คำขอในบล็อกจะถูกดำเนินการเมื่อการสนทนาเข้าสู่สถานะนั้นเท่านั้น
ก่อนสร้างคำขอ คุณต้องเลือกประเภทของคำขอ:
POST-data และ POST-JSON แตกต่างกันในวิธีการส่งพารามิเตอร์ ดังที่กล่าวไว้ก่อนหน้านี้ (ในรูปแบบ JSON หรือเป็นคู่คีย์-ค่า) หากคุณเลือก JSON พารามิเตอร์สามารถส่งได้เฉพาะในเนื้อหาของคำขอเท่านั้น ฟิลด์เพิ่มเติมจะปรากฏสำหรับพารามิเตอร์ JSON POST
สำคัญ! พารามิเตอร์ต้องเขียนในรูปแบบ JSON เท่านั้น เนื่องจากบอททำงานกับรูปแบบนี้เท่านั้น คุณได้ฝึกเขียน JSON แล้ว
การตอบกลับจากเซิร์ฟเวอร์สามารถแยกวิเคราะห์และบันทึกลงในตัวแปรได้
คุณสามารถแยกวิเคราะห์การตอบกลับได้เฉพาะเมื่ออยู่ในรูปแบบ JSON เท่านั้น
ตัวแปรที่บันทึกจะถูกบันทึกในแบบฟอร์มที่ยังไม่ได้กรอกล่าสุด หากแบบฟอร์มถูกส่งผ่านบล็อกสีแดง ตัวแปรจะถูกยกเลิก ดังนั้น หากคุณต้องการบันทึกข้อมูลนี้ ให้ส่งตัวแปรไปยังระบบ CRM ผ่านบล็อกสีเหลือง
คุณยังสามารถดูสิ่งที่บอทบันทึกไว้ในตัวแปรได้ในส่วน "Leads"
การส่งตัวแปรที่ไม่ใช่สตริง
โดยค่าเริ่มต้น ค่าของตัวแปรต้องเป็นสตริงในรูปแบบ "#{}" แต่ในกรณีนี้ ตัวแปรจะถูกส่งเป็นสตริง ในการส่งตัวแปรเป็นตัวเลข คุณต้องปิดการตรวจสอบรูปแบบพารามิเตอร์ในการตั้งค่าโปรเจกต์:

จากนั้นคุณสามารถใช้ชื่อตัวแปรได้โดยตรง เช่น: {"key": #{variable_name}} โดยที่ variable_name คือตัวแปร—โดยไม่มีเครื่องหมายคำพูดล้อมรอบ
ขอแนะนำให้เปิดการตรวจสอบรูปแบบอีกครั้งหลังจากตั้งค่าพารามิเตอร์แล้ว