คุณสามารถสร้างบอทที่โต้ตอบกับบริการอื่นๆ ผ่าน 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 ที่มีพารามิเตอร์:

Fig. 3

ที่นี่ พารามิเตอร์ 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 ของคุณเองบนเว็บไซต์นี้:

https://jsoneditoronline.org/

การปฏิบัติ

คำขอสามารถดำเนินการได้โดยบล็อกและเงื่อนไข คำขอแบบมีเงื่อนไขถูกออกแบบมาเพื่อตรวจสอบว่าการสนทนาสามารถดำเนินตามสาขาใดสาขาหนึ่งบนเว็บไซต์ได้หรือไม่ ในกรณีนี้ คำขอจะถูกส่งทุกครั้งที่มีการประเมินเงื่อนไขของสาขา ในทางกลับกัน คำขอในบล็อกจะถูกดำเนินการเมื่อการสนทนาเข้าสู่สถานะนั้นเท่านั้น

ก่อนสร้างคำขอ คุณต้องเลือกประเภทของคำขอ:

POST-data และ POST-JSON แตกต่างกันในวิธีการส่งพารามิเตอร์ ดังที่กล่าวไว้ก่อนหน้านี้ (ในรูปแบบ JSON หรือเป็นคู่คีย์-ค่า) หากคุณเลือก JSON พารามิเตอร์สามารถส่งได้เฉพาะในเนื้อหาของคำขอเท่านั้น ฟิลด์เพิ่มเติมจะปรากฏสำหรับพารามิเตอร์ JSON POST

สำคัญ! พารามิเตอร์ต้องเขียนในรูปแบบ JSON เท่านั้น เนื่องจากบอททำงานกับรูปแบบนี้เท่านั้น คุณได้ฝึกเขียน JSON แล้ว

การตอบกลับจากเซิร์ฟเวอร์สามารถแยกวิเคราะห์และบันทึกลงในตัวแปรได้

คุณสามารถแยกวิเคราะห์การตอบกลับได้เฉพาะเมื่ออยู่ในรูปแบบ JSON เท่านั้น

ตัวแปรที่บันทึกจะถูกบันทึกในแบบฟอร์มที่ยังไม่ได้กรอกล่าสุด หากแบบฟอร์มถูกส่งผ่านบล็อกสีแดง ตัวแปรจะถูกยกเลิก ดังนั้น หากคุณต้องการบันทึกข้อมูลนี้ ให้ส่งตัวแปรไปยังระบบ CRM ผ่านบล็อกสีเหลือง

คุณยังสามารถดูสิ่งที่บอทบันทึกไว้ในตัวแปรได้ในส่วน "Leads"

Fig. 8

การส่งตัวแปรที่ไม่ใช่สตริง

โดยค่าเริ่มต้น ค่าของตัวแปรต้องเป็นสตริงในรูปแบบ "#{}" แต่ในกรณีนี้ ตัวแปรจะถูกส่งเป็นสตริง ในการส่งตัวแปรเป็นตัวเลข คุณต้องปิดการตรวจสอบรูปแบบพารามิเตอร์ในการตั้งค่าโปรเจกต์:

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

ขอแนะนำให้เปิดการตรวจสอบรูปแบบอีกครั้งหลังจากตั้งค่าพารามิเตอร์แล้ว