วันนี้เราจะรวบรวมจากวัสดุที่ได้รับการดัดแปลง https://api.telegram.org/
. เราจะไม่ - ไม่ไม่ แน่นอนในกระเป๋าของเรามีสิ่งที่เรียกว่า เว็บฮุค - ด้วยความช่วยเหลือของพวกเขา เราไม่ได้ส่งคำขอไปยังที่อยู่เฉพาะ แต่ส่งคำขอของเราเป็นการตอบสนองต่อคำขอใด ๆ ที่ส่งถึงเราเท่านั้น นั่นคือในโอเดสซา - เราตอบคำถามด้วยคำถาม นั่นเป็นเหตุผล API โทรเลข จะไม่ปรากฏในรหัสของเรา
ข้อจำกัดความรับผิดชอบชื่อขององค์กรของรัฐใด ๆ ที่กล่าวถึงในบทความนี้เป็นเรื่องสมมติ และความบังเอิญที่เป็นไปได้กับชื่อขององค์กรในชีวิตจริงนั้นเป็นเรื่องบังเอิญ
ดังนั้นเราจะสร้างบอทที่จะจัดหาความคิดที่ชาญฉลาดให้กับเรา เหมือนในภาพ:
คุณสามารถลองใช้งานได้จริง - นี่คือชื่อ: @SmartThoughtsBot. สังเกตปุ่ม "ทักษะของอลิซ"? นี่เป็นเพราะบอทเป็น "คู่หู" ชนิดหนึ่งสำหรับบาร์นี้ ทักษะของอลิซ, เช่น. มันทำหน้าที่เดียวกันกับ ทักษะของอลิซ และบางทีพวกเขาสามารถอยู่ร่วมกันอย่างสงบสุขได้ เกี่ยวกับวิธีการสร้าง ทักษะการคิดอย่างชาญฉลาด อธิบายไว้ในบทความ
การสร้างบอท
ฉันต้องการให้บทช่วยสอนนี้เป็นประโยชน์กับทุกคนรวมถึง และ "ผู้สร้างบอท" มือใหม่ ดังนั้นในส่วนนี้ฉันจะอธิบายรายละเอียดวิธีการสร้างโดยทั่วไปใน Telegramอีบอท สำหรับผู้ที่ไม่ต้องการข้อมูลนี้ ให้ดำเนินการในส่วนถัดไป
เปิดแอปพลิเคชั่น เทเลการัมเราเรียกว่าพ่อของบอททั้งหมด (พวกมันมีทุกอย่างเหมือนคน) - @บอทพ่อ - และเริ่มต้นด้วยเราจะให้คำสั่ง / ช่วยแก่เขาเพื่อรีเฟรชความทรงจำของเราว่าเราทำอะไรได้บ้าง ตอนนี้เราสนใจทีม / newbot.
เนื่องจากบอทที่อธิบายไว้ที่นี่ถูกสร้างขึ้นแล้ว เพื่อวัตถุประสงค์ในการสาธิต ฉันจะสร้างบอทอีกตัวในช่วงเวลาสั้นๆ (จากนั้นฉันจะลบทิ้ง) ฉันจะโทรหาเขา การสาธิต HabrBot. ชื่อ (ชื่อผู้ใช้) บอทโทรเลขทั้งหมดต้องลงท้ายด้วยคำ ปากกระบอกปืนตัวอย่างเช่น: มายคูลบอต หรือ my_cool_bot นี่สำหรับบอท แต่ก่อนอื่น ให้ตั้งชื่อบอท (ชื่อ) สำหรับคน ชื่อสามารถเป็นภาษาใดก็ได้ มีช่องว่าง ไม่ต้องลงท้ายด้วยคำ ปากกระบอกปืนและไม่จำเป็นต้องซ้ำใครด้วยซ้ำ ในตัวอย่างนี้ ผมเรียกบอทนี้ว่า เดโม Habr.
ตอนนี้เลือกชื่อสำหรับบอท (ชื่อผู้ใช้อันหนึ่งสำหรับบอท) ขอเรียกมันว่า การสาธิต HabrBot. ทุกอย่างที่เกี่ยวข้องกับชื่อของบอท (ชื่อ) ไม่เกี่ยวข้องกับชื่อของเขาเลย - ชื่อผู้ใช้ (หรือนำไปใช้แต่ตรงกันข้าม) หลังจากสร้างชื่อบอทเฉพาะสำเร็จแล้ว เราต้องคัดลอกและบันทึก (อย่างมั่นใจที่สุด!) โทเค็นที่แสดงในภาพหน้าจอด้วยลูกศรสีแดง ด้วยความช่วยเหลือเราจะติดตั้งขาออกในภายหลัง Telegram'เว็บฮุคของเรา ฟังก์ชันยานเดกซ์.
และตอนนี้เราจะให้คำสั่งกับพ่อของบอททั้งหมด: /มายบอทและจะแสดงรายการบอททั้งหมดที่เราสร้าง ปล่อยให้บอทที่เพิ่งอบใหม่อยู่คนเดียวในตอนนี้ เดโม Habr (มันถูกสร้างขึ้นเพื่อแสดงวิธีการสร้างบอท แต่เราจะใช้มันในวันนี้เพื่อวัตถุประสงค์ในการสาธิตอื่นๆ) และพิจารณาบอท ความคิดที่ชาญฉลาด (@SmartThoughtsBot). คลิกปุ่มที่มีชื่อในรายการบอท
นี่คือที่ที่เราสามารถตั้งค่าบอทของเราได้ กดปุ่ม แก้ไข ... เราจะดำเนินการแก้ไขตัวเลือกใดตัวเลือกหนึ่ง ตัวอย่างเช่น โดยคลิกที่ปุ่ม แก้ไขชื่อ เราสามารถเปลี่ยนชื่อบอตพูดแทน ความคิดที่ชาญฉลาด, เขียน ไอเดียบ้าๆ. บอทพิค - นี่คืออวาตาร์ของบอท อย่างน้อยต้องเป็น 150 x 150 px. รายละเอียด เป็นคำอธิบายสั้น ๆ ที่ผู้ใช้เห็นเมื่อเปิดบอทเป็นครั้งแรก เพื่อตอบคำถาม: บอทนี้ทำอะไรได้บ้าง? เกี่ยวกับเรา - คำอธิบายที่สั้นกว่าซึ่งส่งพร้อมลิงก์ไปยังบอท (https://t.me/SmartThoughtsBot
) หรือเมื่อดูข้อมูลเกี่ยวกับมัน
เราก็ต้องตั้งค่าคำสั่ง ในการทำเช่นนี้ให้กดปุ่ม แก้ไขคำสั่ง. เพื่อสร้างมาตรฐานการปฏิบัติของผู้ใช้ Telegram แนะนำให้ใช้สองคำสั่งเสมอ: / start и /ช่วยด้วยและถ้าบอทต้องการการตั้งค่า - คำสั่งเพิ่มเติม /settings บอทของเราเรียบง่ายเหมือนลูกบอล ดังนั้นจึงไม่จำเป็นต้องตั้งค่าใดๆ เราเขียนสองคำสั่งแรกซึ่งเราจะดำเนินการในรหัส ตอนนี้ หากผู้ใช้ป้อนเครื่องหมายทับ (เครื่องหมายทับ : /) ในช่องป้อนข้อมูล รายการคำสั่งจะปรากฏขึ้นสำหรับการเลือกอย่างรวดเร็ว ทุกอย่างเป็นไปตามภาพ: ด้านซ้าย - เราตั้งค่าคำสั่งผ่านบอทพ่อ ทางด้านขวา คำสั่งเหล่านี้พร้อมใช้งานสำหรับผู้ใช้ในบอทของเราแล้ว
ฟังก์ชันยานเดกซ์
ตอนนี้บอทของเราถูกสร้างขึ้นแล้ว ไปที่ Yandex.Cloudเพื่อสร้างฟังก์ชั่นที่จะรันโค้ดบอทของเรา หากคุณยังไม่เคยร่วมงานกับ Yandex.Cloud อ่านเนื้อหา
ดังนั้นในคอนโซล Yandex.Clouds ในเมนูนำทางด้านซ้าย ให้เลือกรายการ ฟังก์ชันคลาวด์แล้วกดปุ่ม สร้างฟังก์ชัน. เราตั้งชื่อและเพื่อตัวเราเอง - คำอธิบายสั้น ๆ
หลังจากกดปุ่ม สร้าง และหลังจากนั้นไม่กี่วินาที ฟังก์ชันใหม่จะปรากฏในรายการฟังก์ชันทั้งหมด คลิกที่ชื่อของเธอ - นี่จะนำเราไปที่หน้า ทบทวน ฟังก์ชั่นของเรา ที่นี่คุณต้องเปิดใช้งานOn) สวิตช์ ฟังก์ชั่นสาธารณะเพื่อให้ใช้งานได้จากภายนอก (สำหรับ Yandex.Clouds) ของโลกและมูลค่าของทุ่งนา ลิงค์โทร и ระบุ - เก็บไว้เป็นความลับจากทุกคนยกเว้นตัวคุณเองและ Telegram เพื่อให้นักต้มตุ๋นหลายคนไม่สามารถเรียกใช้ฟังก์ชันของคุณได้
ตอนนี้ใช้เมนูด้านซ้ายไปที่ บรรณาธิการ ฟังก์ชั่น. ให้เราพักสักครู่ของเรา ความคิดที่ชาญฉลาดและสร้างฟังก์ชันเทมเพลตขั้นต่ำเพื่อตรวจสอบประสิทธิภาพของบอทของเรา... อย่างไรก็ตาม ในบริบทนี้ ฟังก์ชันนี้คือบอทของเรา... กล่าวโดยย่อ ตอนนี้และที่นี่ เราจะสร้างบอทง่ายๆ ที่จะ "สะท้อน" ( เช่น ส่งกลับ ) คำขอของผู้ใช้ เทมเพลตนี้สามารถใช้ได้เสมอเมื่อสร้างบอทโทรเลขใหม่เพื่อให้แน่ใจว่าการสื่อสารด้วย โทรเลข'โอมทำงานได้ดี คลิก สร้างไฟล์โทรเลย index.jsและออนไลน์ โปรแกรมแก้ไขโค้ด วางรหัสต่อไปนี้ลงในไฟล์นี้:
module.exports.bot = async (event) => {
const body = JSON.parse(event.body);
const msg = {
'method': 'sendMessage',
'chat_id': body.message.chat.id,
'text': body.message.text
};
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json'
},
'body': JSON.stringify(msg),
'isBase64Encoded': false
};
};
ในคอนโซล Yandex.Cloud ควรมีลักษณะดังนี้:
ด้านล่างเราระบุ จุดเริ่มต้น - index.botที่ไหน ดัชนี นี่คือชื่อไฟล์ (index.js) และ ปากกระบอกปืน - ชื่อฟังก์ชัน (โมดูล.exports.bot). ปล่อยให้ฟิลด์อื่นทั้งหมด "ตามสภาพ" และที่มุมขวาบนให้คลิกปุ่ม สร้างเวอร์ชัน. หลังจากนั้นไม่กี่วินาที ฟังก์ชันเวอร์ชันนี้จะถูกสร้างขึ้น หลังจากการทดสอบไม่นาน เว็บฮุคเราจะสร้างเวอร์ชันใหม่ - ความคิดที่ชาญฉลาด.
การจัดเก็บวัตถุ
ตอนนี้เราได้ตั้งค่าแล้ว ฟังก์ชันยานเดกซ์ไปกันเถอะในขณะที่เราอยู่ในคอนโซล Yandex.Clouds, สร้างสิ่งที่เรียกว่า. ถัง (ถัง, เช่น. ถังในภาษารัสเซียไม่ใช่ช่อ) สำหรับจัดเก็บไฟล์รูปภาพที่จะใช้ในบอทของเรา ความคิดที่ชาญฉลาด. เลือกจากเมนูนำทางด้านซ้าย การจัดเก็บวัตถุ, กดปุ่ม สร้างถังตั้งชื่อให้ เช่น img-ถังและที่สำคัญที่สุดคือ อ่านการเข้าถึงวัตถุ ทำให้เป็นสาธารณะ - มิฉะนั้น Telegram จะไม่เห็นรูปภาพของเรา ช่องอื่นๆ ทั้งหมดจะไม่เปลี่ยนแปลง เรากดปุ่ม สร้างถัง.
หลังจากนั้น รายการที่เก็บข้อมูลทั้งหมดอาจมีลักษณะดังนี้ (หากเป็นเพียงที่เก็บข้อมูลเดียวของคุณ):
ตอนนี้ฉันเสนอที่จะคลิกที่ชื่อของที่ฝากข้อมูลและภายในนั้นสร้างโฟลเดอร์เพื่อจัดระเบียบการจัดเก็บรูปภาพสำหรับแอปพลิเคชันต่างๆ ตัวอย่างเช่น สำหรับบอตโทรเลข ความคิดที่ชาญฉลาด ฉันสร้างโฟลเดอร์ชื่อ tg-bot-ความคิดที่ชาญฉลาด (ไม่มีอะไรฉันจะเข้าใจรหัสนี้) สร้างหนึ่งเกินไป
ตอนนี้คุณสามารถคลิกที่ชื่อโฟลเดอร์ เข้าไปข้างในแล้วอัพโหลดไฟล์:
และคลิกที่ชื่อไฟล์ - รับเลย URL สำหรับใช้ในบอทของเราและโดยทั่วไป - ทุกที่ (แต่อย่าเผยแพร่สิ่งนี้ URL โดยไม่จำเป็นเนื่องจากการรับส่งข้อมูลจาก ที่เก็บวัตถุ เรียกเก็บเงิน)
ในความเป็นจริงนั่นคือทั้งหมด ที่เก็บวัตถุ. ตอนนี้คุณจะรู้ว่าต้องทำอย่างไรเมื่อเห็นข้อความแจ้งให้อัปโหลดไฟล์ที่นั่น
เว็บฮุค
ตอนนี้เราจะติดตั้ง เว็บฮุค - เช่น. เมื่อบอทได้รับการอัปเดต (เช่น ข้อความจากผู้ใช้) จากเซิร์ฟเวอร์ Telegram ของเรา ฟังก์ชันยานเดกซ์ คำขอจะถูกส่งขอ) กับข้อมูล นี่คือสตริงที่คุณสามารถวางในช่องที่อยู่ของเบราว์เซอร์ จากนั้นรีเฟรชหน้า (ต้องทำเพียงครั้งเดียว): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
เพียงแค่แทนที่ {bot_token} โทเค็นที่เราได้รับจากบอทพ่อเมื่อสร้างบอทของเราและ {เว็บฮุค_url} - บน URL ของเรา ฟังก์ชันยานเดกซ์. รอสักครู่! แต่ RossKomเซ็นเซอร์ ห้ามผู้ให้บริการในสหพันธรัฐรัสเซียให้บริการที่อยู่ https://api.telegram.org
. ถูกต้องเลย. แต่คุณสามารถคิดอะไรบางอย่างได้ ท้ายที่สุด คุณสามารถถามคุณยายของคุณเกี่ยวกับเรื่องนี้ได้ในยูเครน อิสราเอล หรือแคนาดา - ไม่มี "การเซ็นเซอร์ของรัสเซีย" ที่นั่น และมีเพียงพระเจ้าเท่านั้นที่รู้ว่าผู้คนอยู่โดยไม่มีมันได้อย่างไร ดังนั้น การตอบกลับคำขอเมื่อติดตั้งเว็บฮุคควรมีลักษณะดังนี้:
การทดสอบ ควรส่องกระจก
นี่เป็นเรื่องจริง ขอแสดงความยินดี - ตอนนี้ ฟังก์ชันยานเดกซ์ ได้กลายเป็น Telegram-บอท!
ความคิดที่ชาญฉลาด
และตอนนี้เราทำ Smart Thoughts รหัสเปิดอยู่และอยู่บน
โคลนโครงการและติดตั้งการอ้างอิง:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
ทำการเปลี่ยนแปลงที่คุณต้องการในไฟล์ index.js (ไม่บังคับ คุณไม่สามารถเปลี่ยนแปลงอะไรได้) สร้าง ไปรษณีย์- เก็บถาวรด้วยไฟล์ index.js และโฟลเดอร์ node_modules ภายใน เช่น ก็เรียก smart.zip.
ตอนนี้ไปที่คอนโซลของเรา ฟังก์ชันยานเดกซ์, เลือกแท็บ ไฟล์ ZIP, กดปุ่ม เลือกไฟล์และดาวน์โหลดไฟล์เก็บถาวรของเรา smart.zip. สุดท้ายที่มุมขวาบน ให้คลิกปุ่ม สร้างเวอร์ชัน.
ในไม่กี่วินาที เมื่อฟังก์ชันได้รับการอัปเดต เราจะทดสอบบอทของเราอีกครั้ง ตอนนี้เขาไม่ "สะท้อน" อีกต่อไป แต่ให้ความคิดที่ชาญฉลาด!
นั่นคือทั้งหมดสำหรับวันนี้ บทความอื่นๆ ตามมา หากคุณสนใจที่จะอ่านสิ่งนี้ สมัครรับการแจ้งเตือนบทความใหม่ คุณสามารถสมัครได้ที่นี่หรือ Telegram-ช่อง
การอ้างอิง
โดนาติ
ที่มา: will.com