Wechaty เป็น Conversational SDK สำหรับ Chatbot Makers ที่สามารถช่วยคุณสร้างบอทใน PHP 8 บรรทัด
"Wechaty เป็นโซลูชั่นที่ยอดเยี่ยม ฉันเชื่อว่าจะมีผู้ใช้รู้จักมันมากขึ้น"
— @Gcaufy วิศวกร Tencent ผู้แต่ง WePY“มันมีประโยชน์จนฉันอยากจะร้องไห้”
— @xinbenlv วิศวกรของ Google ผู้ก่อตั้ง HaoShiYou.orgลิงก์ "ไลบรารีการพัฒนา WeChat ที่ดีที่สุด"
— @Jarvis วิศวกร Baiduลิงก์ "Wechaty ช่วยให้ผู้ปฏิบัติงานมีเวลามากขึ้นในการคิดเกี่ยวกับวิธีวางแผนกิจกรรม รักษาผู้ใช้ และสร้างรายได้จากธุรกิจ"
— @lijiarui ผู้ก่อตั้งและซีอีโอของ Juzi.BOT"ถ้าคุณรู้จัก js ... ลองใช้ Wechaty มันใช้งานง่าย"
— @Urinx Uri Lee ผู้แต่ง WeixinBot (Python)
ดูเพิ่มเติมที่ Wiki:เสียงของนักพัฒนา
Wechaty ถูกใช้ในโครงการ ChatBot มากมายโดยนักพัฒนาหลายพันคน หากคุณต้องการพูดคุยกับนักพัฒนารายอื่น เพียงสแกนรหัส QR ต่อไปนี้ใน WeChat ด้วยรหัสลับ php wechaty เข้าร่วม Wechaty PHP Developers' Home ของเรา
สแกนเลย เพราะนักพัฒนา Wechaty PHP คนอื่นๆ ก็อยากคุยกับคุณเหมือนกัน (รหัสลับ: php wechaty )
PHP Wechaty Docker รองรับสคริปต์ PHP
2.1. เรียกใช้สคริปต์ php
# for php script
docker run -ti --volume= " $( pwd ) " :/bot --rm phpwechaty/php-wechaty:v1 docker/ding-dong-bot.php
เรียนรู้เพิ่มเติมเกี่ยวกับ Wechaty Docker ได้ที่ Wiki:Docker
WECHATY_PUPPET_SERVICE_TLS_CA_CERT
: สามารถเขียนทับโดย options.tlsRootCert
ได้ ตั้งค่า Root CA Cert เพื่อตรวจสอบเซิร์ฟเวอร์หรือไคลเอ็นต์สำหรับเซิร์ฟเวอร์หุ่นเชิด:
ตัวแปรสภาพแวดล้อม | ตัวเลือก | คำอธิบาย |
---|---|---|
WECHATY_PUPPET_SERVICE_TLS_SERVER_CERT | options.tls.serverCert | ใบรับรอง CA เซิร์ฟเวอร์ (ข้อมูลสตริง) |
WECHATY_PUPPET_SERVICE_TLS_SERVER_KEY | options.tls.serverKey | คีย์ CA เซิร์ฟเวอร์ (ข้อมูลสตริง) |
WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_SERVER | options.tls.disable | ตั้งค่า true เพื่อปิดใช้งานเซิร์ฟเวอร์ TLS |
สำหรับลูกค้าหุ่นเชิด:
ตัวแปรสภาพแวดล้อม | ตัวเลือก | คำอธิบาย |
---|---|---|
WECHATY_PUPPET_SERVICE_AUTHORITY | options.authority | โฮสต์การค้นพบบริการ ค่าเริ่มต้น: api.chatie.io |
WECHATY_PUPPET_SERVICE_TLS_CA_CERT | options.caCert | ใบรับรองหลักของผู้ออกใบรับรอง ค่าเริ่มต้นคือการใช้ใบรับรองรูทของชุมชน Wechaty |
WECHATY_PUPPET_SERVICE_TLS_SERVER_NAME | options.serverName | ชื่อเซิร์ฟเวอร์ (การจับคู่เสาสำหรับ SNI) |
WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_CLIENT | options.tls.disable | ตั้งค่า true เพื่อปิดใช้งาน TLS ของไคลเอ็นต์ |
เรียนรู้เพิ่มเติมเกี่ยวกับ tls ได้ที่ https://github.com/wechaty/puppet-service
$ wechaty = IO Github Wechaty Wechaty :: getInstance ( $ token , $ endPoint );
$ wechaty -> onScan ( function ( $ qrcode , $ status , $ data ) {
$ qr = IO Github Wechaty Util QrcodeUtils :: getQr ( $ qrcode );
echo " $ qr nn Online Image: https://wechaty.github.io/qrcode/ $ qrcode n" ;
})-> onLogin ( function ( IO Github Wechaty User ContactSelf $ user ) {
})-> onMessage ( function ( IO Github Wechaty User Message $ message ) {
$ message -> say ( " hello from PHP7.4 " );
})-> start ();
เรามี Wechaty ใน TypeScript อยู่แล้ว การแปล TypeScript(TS) เป็น PHP ก็ไม่ยากเกินไป เพราะ wechaty มีโค้ด TS เพียง 3,000 บรรทัด ซึ่งได้รับการออกแบบมาอย่างดีและแยกส่วนโดยนามธรรมของ wechaty เราได้แปลโค้ด TypeScript ทั้ง 3,000 บรรทัดแล้ว เราจะเกือบจะเสร็จแล้ว
เนื่องจากเรามีระบบนิเวศของ Wechaty ใน TypeScript อยู่แล้ว ดังนั้นเราจะไม่ต้องใช้ทุกอย่างใน PHP โดยเฉพาะในเดือนกุมภาพันธ์ 2020 เราได้เสร็จสิ้นโมดูล @chatie/grpc service abstracting ด้วยการใช้งาน wechaty-puppet-service
แผนภาพต่อไปนี้แสดงให้เห็นว่าเราสามารถนำกลับมาใช้ใหม่ได้เกือบทุกอย่างใน TypeScript และสิ่งที่เราต้องทำมีเพียงบล็อกที่อยู่มุมขวาบนของแผนภาพเท่านั้น: Wechaty (PHP)
+--------------------------+ +--------------------------+
| | | |
| Wechaty (TypeScript) | | Wechaty (PHP) |
| | | |
+--------------------------+ +--------------------------+
+-------------------------------------------------------+
| Wechaty Puppet Service |
| |
| (wechaty-puppet-service) |
+-------------------------------------------------------+
+--------------------- @chatie/grpc ----------------------+
+-------------------------------------------------------+
| Wechaty Puppet Abstract |
| |
| (wechaty-puppet) |
+-------------------------------------------------------+
+--------------------------+ +--------------------------+
| Pad Protocol | | Web Protocol |
| | | |
| wechaty-puppet-padplus | |(wechaty-puppet-puppeteer)|
+--------------------------+ +--------------------------+
+--------------------------+ +--------------------------+
| Windows Protocol | | Mac Protocol |
| | | |
| (wechaty-puppet-windows) | | (wechaty-puppet-macpro) |
+--------------------------+ +--------------------------+
มีคลาส 100 บรรทัดชื่อ Image
ซึ่งรับผิดชอบในการดาวน์โหลดรูปภาพ WeChat ในขนาดต่างๆ
นี่เป็นตัวอย่างที่ดีในการสาธิตวิธีการแปล TypeScript เป็น PHP ใน Wechaty Way:
หากคุณสนใจการแปลและต้องการดูวิธีการทำงาน จะเป็นการเริ่มต้นที่ดีจากการอ่านและเปรียบเทียบไฟล์คลาส Image
ทั้งสองไฟล์ใน TypeScript และ PHP ในเวลาเดียวกัน
วิป...
docker build -t php-wechaty:v1 .
docker run -ti --volume= " $( pwd ) " :/bot --rm php-wechaty:v1 docker/ding-dong-bot.php
pecl install grpc
pecl install protobuf
pecl install yac
# php make sure is 7.4+
sudo yum install php-pecl-grpc
sudo yum install php-pecl-protobuf
sudo yum install php-pecl-yac
sudo yum install php-xml
# php74
sudo yum install php74-php-pecl-grpc
sudo yum install php74-php-pecl-protobuf
sudo yum install php74-php-pecl-yac
sudo yum install php74-php-xml
# php[x]
sudo yum install php[x]-php-pecl-grpc
sudo yum install php[x]-php-pecl-protobuf
sudo yum install php[x]-php-pecl-yac
sudo yum install php[x]-php-xml
yac.enable=1
yac.enable_cli=1
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
# https://packagist.org/packages/wechaty/php-wechaty
composer require wechaty/php-wechaty
php examples/bot.php
[ ![ Wechaty in PHP ] ( https://img.shields.io/badge/Wechaty-PHP-7de )] ( https://github.com/wechaty/php-wechaty )