Wechaty เป็น RPA SDK เชิงสนทนาที่ทำให้กระบวนการสร้างแชทบอทง่ายขึ้น มันเหมือนกับมีดของ Swiss Army สำหรับการพัฒนาแชทบอต โดยมีอินเทอร์เฟซแบบสากลสำหรับแพลตฟอร์มการส่งข้อความต่างๆ เช่น WhatsApp, WeChat และอื่นๆ ด้วย Wechaty คุณจะเขียนโค้ดบอทเพียงครั้งเดียว และโค้ดจะทำงานบนแพลตฟอร์มที่รองรับ ซึ่งหมายความว่าคุณสามารถมุ่งเน้นไปที่การสร้างประสบการณ์การสนทนาที่น่าสนใจโดยไม่ต้องกังวลกับความซับซ้อนพื้นฐานของ API ของแต่ละแพลตฟอร์ม เป็นโอเพ่นซอร์ส ใช้งานง่าย และได้รับการสนับสนุนจากชุมชนที่มีชีวิตชีวาซึ่งพร้อมที่จะช่วยให้คุณนำแนวคิดแชทบอทของคุณไปใช้จริง
Wechaty เป็น SDK RPA (Robotic Process Automation) สำหรับ Chatbot Makers ซึ่งสามารถช่วยคุณสร้างบอทใน 6 บรรทัดของ JavaScript, Python, Go และ Java พร้อมการรองรับข้ามแพลตฟอร์ม รวมถึง Linux, Windows, MacOS และ Docker
️ https://wechaty.js.org
https://github.com/Wechaty/wechaty
- https://github.com/Wechaty/wechaty/issues
https://github.com/Wechaty/wechaty-getting-started
- https://hub.docker.com/r/wechaty/wechaty
"Wechaty เป็นโซลูชั่นที่ยอดเยี่ยม ฉันเชื่อว่าจะมีผู้ใช้จำนวนมากขึ้นที่รู้จักมัน" ลิงค์
— @Gcaufy วิศวกร Tencent ผู้แต่ง WePY"太好用, 好用的想哭"
— @xinbenlv วิศวกรของ Google ผู้ก่อตั้ง HaoShiYou.org”好用到哭“——คุณ们对得起这个评价! ลิงค์
— @bigbrother666sh ผู้สร้าง《社长不见了》剧本杀 NPC DMลิงก์ "最好的微信发库"
— @Jarvis วิศวกร Baiduลิงก์ "Wechaty让运营人员更多的时间思考如何进行活动策划、留存用户,商业变现"
— @lijiarui ผู้ก่อตั้งและซีอีโอของ Juzi.BOT"ถ้าคุณรู้จัก js ... ลองใช้ Wechaty มันใช้งานง่าย"
— @Urinx Uri Lee ผู้แต่ง WeixinBot (Python)"Wechaty เป็นโครงการที่ดี ฉันหวังว่ามันจะดำเนินต่อไปได้! ดังนั้นฉันจึงกลายเป็นผู้มีส่วนร่วมในกลุ่มเปิด"
- @เรียบง่าย
ดูเพิ่มเติมที่ Wiki:เสียงของนักพัฒนา
Wechaty ถูกใช้ในโครงการ ChatBot มากมายโดยนักพัฒนาหลายพันคน หากต้องการพูดคุยกับนักพัฒนารายอื่น ให้สแกนโค้ด QR ด้านล่างและเข้าร่วม ชุมชนนักพัฒนา Wechaty ของเรา
สแกนเลยตอนนี้เพราะนักพัฒนา Wechaty คนอื่นๆ ก็อยากคุยกับคุณเหมือนกัน!
Wechaty ได้จัดการเสวนามากมายและมีบล็อกมากมายในช่วงหลายปีที่ผ่านมา นี่คือแหล่งข้อมูล Wechaty ทั้งหมด:
import { WechatyBuilder } from 'wechaty'
const wechaty = WechatyBuilder . build ( ) // get a Wechaty instance
wechaty
. on ( 'scan' , ( qrcode , status ) => console . log ( `Scan QR Code to login: ${ status } nhttps://wechaty.js.org/qrcode/ ${ encodeURIComponent ( qrcode ) } ` ) )
. on ( 'login' , user => console . log ( `User ${ user } logged in` ) )
. on ( 'message' , message => console . log ( `Message: ${ message } ` ) )
wechaty . start ( )
หมายเหตุ: Wechaty ต้องใช้ Node.js เวอร์ชัน >= 16
บอทนี้สามารถบันทึกข้อความทั้งหมดไปยังคอนโซลหลังจากเข้าสู่ระบบด้วยการสแกน
คุณสามารถดูตัวอย่างอย่างเป็นทางการของ Wechaty ได้ที่ examples/ding-dong-bot.ts และอื่นๆ อีกมากมายจากไดเรกทอรีตัวอย่างของเรา
เรามีพื้นที่เก็บข้อมูลเริ่มต้น Wechaty สำหรับผู้เริ่มต้นด้วยการตั้งค่าที่ง่ายที่สุด มันจะ ทำงาน นอกกรอบหลังจากที่คุณ clone
& npm install
& npm start
หากคุณยังใหม่กับ Wechaty และต้องการลองใช้ครั้งแรก เราขอแนะนำให้คุณเริ่มต้นจากพื้นที่เก็บข้อมูลนี้ และใช้เป็นเทมเพลตเริ่มต้นสำหรับโปรเจ็กต์ของคุณ
มิฉะนั้น โปรดบันทึก โค้ด ChatBot ที่สั้นที่สุดในโลก: ตัวอย่าง JavaScript 6 บรรทัด ข้างต้นลงในไฟล์ชื่อ bot.js
ก่อนจึงจะสามารถใช้ NPM หรือ Docker เพื่อเรียกใช้งานได้
npm init
npm install wechaty
# create your first bot.js file, you can copy/paste from the above "The World's Shortest ChatBot Code: 6 lines of JavaScript"
# then:
node bot.js
Wechaty Docker รองรับทั้ง JavaScript และ TypeScript หากต้องการใช้ TypeScript เพียงแค่เขียนใน TypeScript และบันทึกด้วยนามสกุล
.ts
ไม่จำเป็นต้องคอมไพล์เพราะเราใช้ts-node
เพื่อรัน
2.1. เรียกใช้จาวาสคริปต์
# for JavaScript
docker run -ti --rm --volume= " $( pwd ) " :/bot wechaty/wechaty bot.js
2.2. เรียกใช้ TypeScript
# for TypeScript
docker run -ti --rm --volume= " $( pwd ) " :/bot wechaty/wechaty bot.ts
เรียนรู้เพิ่มเติมเกี่ยวกับ Wechaty Docker ได้ที่ Wiki:Docker
Wechaty มีประสิทธิภาพมากที่สามารถทำงานบนโปรโตคอลที่แตกต่างกันได้ คุณสามารถระบุโปรโตคอลได้โดยตั้งค่าตัวแปรสภาพแวดล้อม WECHATY_PUPPET
เป็นผู้ให้บริการหุ่นรายอื่น
หากคุณไม่สามารถใช้โปรโตคอลเว็บได้ คุณสามารถใช้โปรโตคอลอื่นๆ โดยทำตามคำแนะนำที่นี่: https://github.com/wechaty/wechaty/wiki/Support-Developers เรามีโทเค็นฟรีเพื่อสนับสนุนนักพัฒนาในการสร้างแชทบอท WeChat ที่มีคุณค่า
ขณะนี้เราสนับสนุนผู้ให้บริการหุ่นเชิดดังต่อไปนี้:
โปรโตคอล | ผู้ให้บริการหุ่นเชิด | ตัวแปรสภาพแวดล้อม |
---|---|---|
เว็บ | Puppetนักเชิดหุ่น | export WECHATY_PUPPET=wechaty-puppet-puppeteer |
หน้าต่าง | PuppetWorkPro | export WECHATY_PUPPET=wechaty-puppet-service |
ล้อเลียน | PuppetMock | export WECHATY_PUPPET=wechaty-puppet-mock |
เว็บ | หุ่นเชิดWechat4u | export WECHATY_PUPPET=wechaty-puppet-wechat4u |
ไอแพด | PuppetRock | export WECHATY_PUPPET=wechaty-puppet-service |
ไอแพด | PuppetPadLocal | export WECHATY_PUPPET=wechaty-puppet-service |
หน้าต่าง | หุ่นเชิดโดนัท | export WECHATY_PUPPET=wechaty-puppet-service |
ไอแพด | export WECHATY_PUPPET=wechaty-puppet-padpro | |
ไอแพด | export WECHATY_PUPPET=wechaty-puppet-padchat | |
ไอแพด | export WECHATY_PUPPET=wechaty-puppet-padplus | |
แม็ค | export WECHATY_PUPPET=wechaty-puppet-macpro | |
หน้าต่าง | export WECHATY_PUPPET=wechaty-puppet-service |
เรียนรู้เพิ่มเติมเกี่ยวกับ Wechaty Puppet จาก Puppet Wiki:
อ่านเอกสารฉบับเต็มได้ที่ข้อมูลอ้างอิง API อย่างเป็นทางการของ Wechaty
Wechaty
คลาสบอทหลัก
Bot
คืออินสแตนซ์ Wechaty ที่ควบคุมหุ่นเชิด wechaty ที่เฉพาะเจาะจง
new Wechaty(options?: WechatyOptions)
options.name?: string
ชื่อของบอทนี้ (ไม่จำเป็น)options.puppet?: string
เลือกผู้ให้บริการหุ่นกระบอกที่เราต้องการใช้ ต้องเป็นหนึ่งใน:options.puppetOptions?: PuppetOptions
สำหรับผู้ให้บริการหุ่นกระบอกวีชาตี | เอพีไอ | คำอธิบาย |
---|---|---|
เหตุการณ์ | login | ปล่อยออกมาหลังจากล็อกอินบอทสำเร็จแล้ว |
เหตุการณ์ | logout | ปล่อยออกมาหลังจากที่บอทออกจากระบบ |
เหตุการณ์ | friendship | ปล่อยออกมาเมื่อมีคนส่งคำขอเป็นเพื่อนกับบอท |
เหตุการณ์ | message | ปล่อยออกมาเมื่อมีข้อความใหม่ |
เหตุการณ์ | room-join | ปล่อยออกมาเมื่อมีคนเข้าร่วมห้องใดก็ได้ |
เหตุการณ์ | room-topic | ปล่อยออกมาเมื่อมีคนเปลี่ยนหัวข้อห้อง |
เหตุการณ์ | room-leave | ปล่อยออกมาเมื่อมีคนออกจากห้อง |
เหตุการณ์ | room-invite | ปล่อยออกมาเมื่อมีการเชิญห้อง |
เหตุการณ์ | scan | ปล่อยออกมาเมื่อบอทต้องแสดงรหัส QR ให้คุณสแกน |
วิธี | start(): Promise<void> | เริ่มบอท |
วิธี | stop(): Promise<void> | หยุดบอท |
วิธี | logonoff(): boolean | สถานะการเข้าสู่ระบบบอท |
วิธี | logout(): Promise<void> | ออกจากระบบบอท |
วิธี | currentUser(): ContactSelf | รับข้อมูลติดต่อบอทที่เข้าสู่ระบบ |
วิธี | say(text: string): Promise<void> | ให้บอทพูด text กับตัวเอง |
Contact
ชั้น 2รายชื่อติดต่อใน Wechat ทั้งหมด (เพื่อน/ไม่ใช่เพื่อน) จะถูกรวมไว้เป็นรายชื่อติดต่อ
ติดต่อ | เอพีไอ | คำอธิบาย |
---|---|---|
คงที่ | find(query: string): Promise<null | Contact> | ค้นหาผู้ติดต่อตามชื่อหรือนามแฝง หากผลลัพธ์มากกว่าหนึ่งรายการ ให้ส่งคืนรายการแรก |
คงที่ | findAll(query: string): Promise<Contact[]> | ค้นหาผู้ติดต่อตาม name หรือ alias |
คงที่ | load(query: string): Contact | ติดต่อได้ที่ไอดี |
คุณสมบัติ | id: readonly string | รับรหัสผู้ติดต่อ |
วิธี | sync(): Promise<void> | บังคับให้โหลดข้อมูลใหม่สำหรับผู้ติดต่อ ซิงค์ข้อมูลจาก API ระดับต่ำอีกครั้ง |
วิธี | say(text: string): Promise<void | Message> | ส่งข้อความ ผู้ติดต่อ หรือไฟล์ถึงผู้ติดต่อ ส่งคืนข้อความที่บอทส่งไป (รองรับเฉพาะ puppet-padplus เท่านั้น) |
วิธี | self(): boolean | ตรวจสอบว่าผู้ติดต่อเป็นตนเองหรือไม่ |
วิธี | name(): string | รับชื่อจากผู้ติดต่อ |
วิธี | alias(): Promise<string> | รับนามแฝงสำหรับผู้ติดต่อ |
วิธี | alias(newAlias: string): Promise<void> | ตั้งค่าหรือลบนามแฝงสำหรับผู้ติดต่อ |
วิธี | friend(): boolean | ตรวจสอบว่าผู้ติดต่อเป็นเพื่อนหรือไม่ |
วิธี | type(): ContactType | คืนประเภทของผู้ติดต่อ |
วิธี | province(): string | รับ 'จังหวัด' ของภูมิภาคจากผู้ติดต่อ |
วิธี | city(): string | รับภูมิภาค 'เมือง' จากผู้ติดต่อ |
วิธี | avatar(): Promise<FileBox> | รับสตรีมไฟล์รูปภาพประจำตัว |
วิธี | gender(): ContactGender | รับเพศจากผู้ติดต่อ |
ContactSelf
ระดับตนเอง Class ContactSelf
ถูกขยายจาก Contact
ติดต่อด้วยตนเอง | เอพีไอ | คำอธิบาย |
---|---|---|
วิธี | avatar(file: FileBox): Promise<void> | ตั้งค่าอวาตาร์ให้กับบอท |
วิธี | qrcode(): Promise<string> | รับ qrcode สำหรับบอท |
วิธี | signature(text: string): Promise<void> | ตั้งค่าลายเซ็นสำหรับบอท |
Friendship
ระดับส่ง รับคำขอเป็นเพื่อน และกิจกรรมยืนยันเพื่อน
มิตรภาพ | เอพีไอ | คำอธิบาย |
---|---|---|
คงที่ | add(contact: Contact, hello?: string): Promise<void> | ส่งคำเชิญเพื่อนเพื่อติดต่อ |
วิธี | accept(): Promise<void> | ยอมรับคำขอเป็นเพื่อน |
วิธี | hello(): string | รับข้อความสวัสดีจากคำเชิญมิตรภาพ |
วิธี | contact(): Contact | ได้รับการติดต่อจากมิตรภาพ |
วิธี | type(): FriendshipType | คืนประเภทมิตรภาพ (ไม่ทราบ, ยืนยัน, รับ, ตรวจสอบ) |
Message
ในชั้นเรียน 3 รายการข้อความ Wechat ทั้งหมดจะถูกห่อหุ้มเป็นข้อความ
ข้อความ | เอพีไอ | คำอธิบาย |
---|---|---|
คงที่ | find(query: string): Promise<null | Message> | ค้นหาข้อความในแคชและส่งคืนข้อความแรก |
คงที่ | findAll(query: string): Promise<Message[]> | ค้นหาข้อความในแคช ส่งคืนรายการข้อความ |
วิธี | from(): Contact | รับผู้ส่งจากข้อความ |
วิธี | to(): Contact | รับปลายทางของข้อความ |
วิธี | room(): null | Room | รับห้องจากข้อความ (หากข้อความไม่อยู่ในห้องก็จะคืนค่า null ) |
วิธี | text(): string | รับเนื้อหาข้อความของข้อความ |
วิธี | say(text: string): Promise<void | Message> | ตอบกลับข้อความ ไฟล์มีเดีย หรือข้อความติดต่อถึงผู้ส่ง ส่งคืนข้อความที่บอทส่งไป (รองรับเฉพาะ puppet-padplus ) |
วิธี | type(): MessageType | รับประเภทจากข้อความ |
วิธี | self(): boolean | ตรวจสอบว่าข้อความถูกส่งด้วยตนเองหรือไม่ |
วิธี | mention(): Contact[] | รับข้อความที่กล่าวถึงรายชื่อผู้ติดต่อ |
วิธี | mentionSelf(): boolean | ตรวจสอบว่าข้อความพูดถึงตัวเองหรือไม่ |
วิธี | forward(to: Contact): Promise<void> | ส่งต่อข้อความที่ได้รับ |
วิธี | age(): number | จำนวนวินาทีนับตั้งแต่ถูกสร้างขึ้น |
วิธี | date(): Date | เวลาที่มันถูกสร้างขึ้น |
วิธี | toFileBox(): Promise<FileBox> | แยกไฟล์มีเดียออกจากข้อความแล้วใส่ลงใน FileBox |
วิธี | toContact(): Promise<Contact> | รับการ์ดแชร์ข้อความ |
Room
ห้อง WeChat (กลุ่ม) ทั้งหมดจะถูกห่อหุ้มเป็นห้อง
ห้อง | เอพีไอ | คำอธิบาย |
---|---|---|
คงที่ | create(contactList: Contact[], topic?: string): Promise<Room> | สร้างห้องใหม่ |
คงที่ | find(query: string): Promise<null | Room> | ลองหาห้องโดยตัวกรอง หากได้หลายอันให้คืนอันแรก |
คงที่ | findAll(query: string): Promise<Room[]> | ค้นหาผู้ติดต่อทั้งหมดในห้อง |
คงที่ | load(query: string): Room | โหลดห้องตามรหัสห้อง |
คุณสมบัติ | id: readonly string | |
เหตุการณ์ | join | ปล่อยออกมาเมื่อมีคนเข้าร่วมห้องใดก็ได้ |
เหตุการณ์ | topic | ปล่อยออกมาเมื่อมีคนเปลี่ยนหัวข้อห้อง |
เหตุการณ์ | leave | ปล่อยออกมาเมื่อมีคนออกจากห้อง |
เหตุการณ์ | invite | ปล่อยออกมาเมื่อได้รับคำเชิญเข้าห้อง |
วิธี | sync(): <Promise<void> | บังคับให้โหลดข้อมูลใหม่สำหรับห้อง ซิงค์ข้อมูลจาก API ระดับต่ำอีกครั้ง |
วิธี | say(text: string): Promise<void | Message> | ส่งข้อความ ไฟล์มีเดีย คอนแทคการ์ด หรือข้อความที่มีการกล่าวถึงผู้ติดต่อ @mention ภายในห้อง คืนข้อความที่บอทส่งไป (รองรับเฉพาะ puppet-padplus ) |
วิธี | add(contact: Contact): Promise<void> | เพิ่มผู้ติดต่อในห้อง |
วิธี | del(contact: Contact): Promise<void> | ลบผู้ติดต่อออกจากห้อง |
วิธี | quit(): Promise<void> | บอทออกจากห้องไปเอง |
วิธี | topic(): Promise<string> | รับหัวข้อจากห้อง |
วิธี | topic(newTopic: string): Promise<void> | หัวข้อ SET จากห้อง |
วิธี | announce(text: string): Promise<void> | SET/GET ประกาศจากห้อง |
วิธี | qrcode(): Promise<string> | รับ QR Code ของห้องจากห้องซึ่งสามารถใช้เป็นสแกนและเข้าร่วมห้องได้ |
วิธี | alias(contact: Contact): Promise<string> | กลับห้องติดต่อ นามแฝงในห้อง |
วิธี | roomAlias(contact: Contact): Promise<string | null> | เช่นเดียวกับนามแฝงของฟังก์ชัน |
วิธี | has(contact: Contact): Promise<boolean> | ตรวจสอบว่าห้องมี contact สมาชิกหรือไม่ |
วิธี | memberAll(query?: string): Promise<Contact[]> | ค้นหาผู้ติดต่อทั้งหมดหรือชื่อเฉพาะในห้อง |
วิธี | member(query: string): Promise<null | Contact> | ค้นหารายชื่อติดต่อทั้งหมดในห้อง ถ้าได้หลายรายการ ให้คืนรายชื่อแรก |
วิธี | memberList():Promise<Contact[]> | รับสมาชิกห้องทั้งหมดออกจากห้อง |
วิธี | owner(): null | Contact | พาเจ้าของห้องออกจากห้อง |
RoomInvitation
ห้องเรียนยอมรับคำเชิญเข้าห้อง
คำเชิญห้องพัก | เอพีไอ | คำอธิบาย |
---|---|---|
วิธี | accept(): Promise<void> | ยอมรับคำเชิญห้อง |
วิธี | inviter(): Contact | รับผู้เชิญจากการเชิญห้อง |
วิธี | roomTopic(): Promise<string> | รับหัวข้อห้องจากคำเชิญเข้าร่วมห้อง |
วิธี | date(): Promise<Date> | เวลาที่มันถูกสร้างขึ้น |
วิธี | age(): Promise<number> | จำนวนวินาทีนับตั้งแต่ถูกสร้างขึ้น |
Wechaty ได้รับการทดสอบอัตโนมัติเต็มรูปแบบโดยการทดสอบหน่วยและการรวมระบบ พร้อมการสนับสนุนการผสานรวมอย่างต่อเนื่องและการจัดส่งอย่างต่อเนื่อง (CI/CD) ที่ขับเคลื่อนโดย CI เช่น Travis, Shippable และ Appveyor
หากต้องการทดสอบ Wechaty ให้รัน:
npm test
เรียนรู้เพิ่มเติมเกี่ยวกับการทดสอบจาก Wiki:Tests
การสร้างและเผยแพร่ปลั๊กอิน Wechaty นั้นง่ายดาย เพียงแสดงโมดูลของคุณเป็นฟังก์ชันที่รับ 1 พารามิเตอร์: wechaty เมื่อ Wechaty นำเข้าปลั๊กอินของคุณ ปลั๊กอินจะส่งผ่านตัวเองเป็นอาร์กิวเมนต์ และคุณสามารถเพิ่มการกำหนดค่าใดๆ ที่ Wechaty รองรับได้อย่างอิสระ
import { WechatyPlugin } from 'wechaty'
export default const MyPlugin : WechatyPlugin = ( wechaty : Wechaty ) => {
// ...
}
มี config
เพื่อให้ผู้ใช้สามารถส่งการปรับแต่งไปยังปลั๊กอินของคุณได้ ในการจัดทำเอกสารปลั๊กอิน Wechaty คุณจะต้องจัดวางการกำหนดค่าที่รองรับสำหรับผู้ใช้
ดู:
[ ![ Powered by Wechaty ] ( https://img.shields.io/badge/Powered%20By-Wechaty-brightgreen.svg )] ( https://wechaty.js.org )
รับโค้ด html/markdown ฝังเพิ่มเติมจาก Wiki:Badge
Pull Request ยินดีที่จะเพิ่มของคุณ!
เรียนรู้เพิ่มเติมเกี่ยวกับโครงการที่ใช้ Wechaty ได้ที่ Wiki:โครงการที่ใช้ Wechaty
แนวทางปฏิบัติที่ดีที่สุดสำหรับการรัน Wechaty Docker/NPM คือการใช้ VPS (Virtual Private Server) นอกประเทศจีน ซึ่งสามารถช่วยคุณประหยัดเวลาได้หลายชั่วโมง เนื่องจาก npm install
และ docker pull
จะทำงานได้อย่างราบรื่นโดยไม่มีปัญหาใดๆ
ทีมงาน Wechaty ใช้งานผู้ให้บริการ VPS ต่อไปนี้ และทำงานได้อย่างสมบูรณ์แบบในการผลิต คุณสามารถใช้ลิงค์ต่อไปนี้เพื่อรับหนึ่งในไม่กี่นาที นอกจากนี้ การทำเช่นนี้สามารถสนับสนุน Wechaty ได้เนื่องจากเราเป็นผู้แนะนำคุณ
ที่ตั้ง | ราคา | ราม | การชำระเงิน | ผู้ให้บริการ |
---|---|---|---|---|
สิงคโปร์ | $5 | 512MB | เพย์พาล | ดิจิตอลโอเชี่ยน |
ญี่ปุ่น | $5 | 1GB | เพย์พาล | ลิโนด |
เกาหลี | $10 | 1GB | อาลีเพย์, เพย์พาล | เน็ตเดดี |
สิงคโปร์ | $3.5 | 512MB | อาลีเพย์, วีแชท | วัลเตอร์ |
ในปี 2560 ...
ชีวิตประจำวัน/งานของ Huan ขึ้นอยู่กับการแชทบน wechat มากเกินไป
คุณจินตนาการได้ไหม? เขากำลังจะตาย...
ดังนั้นบอทที่ไม่รู้จักเหน็ดเหนื่อยที่ทำงานให้ฉันตลอด 24 ชั่วโมงทุกวันบน wechat การตรวจสอบ/กรองข้อความที่สำคัญที่สุดจึงเป็นสิ่งจำเป็นอย่างยิ่ง ตัวอย่างเช่น เน้นการสนทนาที่มีคำหลักที่เขาต้องการติดตาม (โดยเฉพาะในห้องที่มีเสียงดัง) -
ในที่สุด มันถูกสร้างขึ้นเพื่อวัตถุประสงค์ในการศึกษาส่วนตัวของ Huan ในเรื่องการทดสอบอัตโนมัติ
โครงการนี้เกิดขึ้นได้ต้องขอบคุณทุกคนที่มีส่วนร่วม [มีส่วนช่วย].
ขอขอบคุณผู้สนับสนุนของเราทุกคน! [มาเป็นผู้สนับสนุน]
สนับสนุนโครงการนี้ด้วยการเป็นผู้สนับสนุน โลโก้ของคุณจะแสดงที่นี่พร้อมลิงก์ไปยังเว็บไซต์ของคุณ [มาเป็นสปอนเซอร์]
การทำงานเพื่อลดความซ้ำซ้อนของระบบนิเวศ Wechaty สำหรับการนำรูปแบบ CQRS ไปใช้
Wechaty รุ่นเบต้าครั้งที่สอง พร้อมด้วยโมดูล npm ของระบบนิเวศทั้งหมดที่มีเวอร์ชัน v1.10 (wechaty-puppet, wechaty-puppet-service ฯลฯ)
หากต้องการอ้างอิงโครงการนี้ในสื่อสิ่งพิมพ์:
@misc { Wechaty ,
author = { Huan Li, Rui Li } ,
title = { Wechaty: Conversational SDK for Chatbot Makers } ,
year = { 2016 } ,
publisher = { GitHub } ,
journal = { GitHub Repository } ,
howpublished = { url{https://github.com/wechaty/wechaty} } ,
}