wechaty / php-wechaty
PHP Wechaty 是一个用 PHP 编写的聊天机器人 RPA SDK。
Requires
- php: ^7.4 || ^8.0
- google/protobuf: ^v3.3.0
- grpc/grpc: ^v1.3.0
- guzzlehttp/guzzle: ^7.0
- imangazaliev/didom: ^v1.16
- wechaty/php-grpc: ^v0.16.2
- zhangchunsheng/php-qrcode: ^v0.0.2
This package is auto-updated.
Last update: 2024-09-21 09:15:08 UTC
README
查看代码
连接聊天机器人
Wechaty 是一个为聊天机器人开发者提供的对话 SDK,可以帮助你用 8 行 PHP 代码创建一个机器人。
开发者之声
"Wechaty 是一个非常好的解决方案,我相信会有更多的用户认识到它。" 链接
— @Gcaufy,腾讯工程师,WePY 作者 WePY"太好用,好用到想哭"
— @xinbenlv,谷歌工程师,HaoShiYou.org 创始人"最好的微信开发库" 链接
— @Jarvis,百度工程师"Wechaty让运营人员更多的时间思考如何进行活动策划、留存用户,商业变现" 链接
— @lijiarui,Juzi.BOT 创始人兼 CEO"如果你知道 js ... 尝试 Wechaty,它很容易使用。"
— @Urinx Uri Lee,WeixinBot(Python) 作者 WeixinBot(Python)
更多信息请见 Wiki:开发者之声
加入我们
Wechaty 被数千名开发者用于许多聊天机器人项目。如果你想与其他开发者交流,只需扫描以下二维码,使用密钥 php wechaty 加入我们的 Wechaty PHP 开发者之家。
立即扫描,因为其他 Wechaty PHP 开发者也想与你交流!(密钥:php wechaty)
入门
1. Docker
- PHP Wechaty Docker 入门仓库 - https://github.com/wechaty/docker-php-wechaty-getting-started
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
覆盖。设置根 CA 证书以验证服务器或客户端。
对于 Puppet 服务器
对于 Puppet 客户端
有关 tls 的更多信息,请参阅 https://github.com/wechaty/puppet-service
世界上最短的 PHP 聊天机器人:8 行代码
php
$wechaty = \IO\Github\Wechaty\Wechaty::getInstance($token, $endPoint); $wechaty->onScan(function($qrcode, $status, $data) { $qr = \IO\Github\Wechaty\Util\QrcodeUtils::getQr($qrcode); echo "$qr\n\nOnline 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();
PHP Wechaty 开发计划
我们已经在 TypeScript 中实现了 Wechaty,将其转换为 PHP 不会太难,因为 wechaty 只有三千行 TypeScript 代码,它们通过 wechaty-puppet 抽象很好地设计和解耦。因此,在将这三千行 TypeScript 代码翻译完毕后,我们几乎就完成了。
由于我们已经有了一个TypeScript版本的Wechaty生态系统,因此我们不需要在PHP中实现所有内容,尤其是在2020年2月,我们已经完成了使用@chatie/grpc和wechaty-puppet-service实现的service abstracting module。
以下图表显示了我们可以重用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) |
+--------------------------+ +--------------------------+
示例:如何将TypeScript转换为PHP
有一个名为Image
的100行类,负责将微信图片下载到不同的大小。
这是一个演示如何以Wechaty的方式将TypeScript转换为PHP的绝佳例子。
Image类源代码
- TypeScript: https://github.com/wechaty/wechaty/blob/master/src/user/image.ts
- PHP: https://github.com/wechaty/php-wechaty/blob/master/wechaty/IO/Github/Wechaty/User/Image.php
如果您对翻译感兴趣并想了解其工作原理,同时阅读和比较这两个Image
类文件将是一个很好的开始。
待办事项列表
- TS: TypeScript
- SLOC: 源代码行数
Wechaty内部模块
- 类Wechaty
- TS SLOC(1160): https://github.com/wechaty/wechaty/blob/master/src/wechaty.ts
- 代码
- 单元测试
- 文档
- 类Contact
- TS SLOC(804): https://github.com/wechaty/wechaty/blob/master/src/user/contact.ts
- 代码
- 单元测试
- 文档
- 类ContactSelf
- TS SLOC(199): https://github.com/wechaty/wechaty/blob/master/src/user/contact-self.ts
- 代码
- 单元测试
- 文档
- 类Message
- TS SLOC(1054): https://github.com/wechaty/wechaty/blob/master/src/user/message.ts
- 代码
- 单元测试
- 文档
- 类Room
- TS SLOC(1194): https://github.com/wechaty/wechaty/blob/master/src/user/room.ts
- 代码
- 单元测试
- 文档
- 类Image
- TS SLOC(60): https://github.com/wechaty/wechaty/blob/master/src/user/image.ts
- 代码
- 单元测试
- 文档
- 类Accessory
- TS SLOC(179): https://github.com/wechaty/wechaty/blob/master/src/accessory.ts
- 代码
- 单元测试
- 文档
- 类Config
- TS SLOC(187): https://github.com/wechaty/wechaty/blob/master/src/config.ts
- 代码
- 单元测试
- 文档
- 类Favorite
- TS SLOC(52): https://github.com/wechaty/wechaty/blob/master/src/user/favorite.ts
- 代码
- 单元测试
- 文档
- 类Friendship
- TS SLOC(417): https://github.com/wechaty/wechaty/blob/master/src/user/friendship.ts
- 代码
- 单元测试
- 文档
- 类MiniProgram
- TS SLOC(70): https://github.com/wechaty/wechaty/blob/master/src/user/mini-program.ts
- 代码
- 单元测试
- 文档
- 类RoomInvitation
- TS SLOC(317): https://github.com/wechaty/wechaty/blob/master/src/user/room-invitation.ts
- 代码
- 单元测试
- 文档
- 类Tag
- TS SLOC(190): https://github.com/wechaty/wechaty/blob/master/src/user/tag.ts
- 代码
- 单元测试
- 文档
- 类UrlLink
- TS SLOC(107): https://github.com/wechaty/wechaty/blob/master/src/user/url-link.ts
- 代码
- 单元测试
- 文档
微信外部模块
- 类 FileBox
- TS SLOC(638): https://github.com/huan/file-box/blob/master/src/file-box.ts
- 代码
- 单元测试
- 文档
- 类 MemoryCard
- TS SLOC(376): https://github.com/huan/memory-card/blob/master/src/memory-card.ts
- 代码
- 单元测试
- 文档
- 类 WechatyPuppet
- TS SLOC(1115): https://github.com/wechaty/wechaty-puppet/blob/master/src/puppet.ts
- 代码
- 单元测试
- 文档
- 类 WechatyPuppetService
- TS SLOC(909): https://github.com/wechaty/wechaty-puppet-service/blob/master/src/client/puppet-service.ts
- 代码
- 单元测试
- 文档
用法
工作进行中...
docker
docker build -t php-wechaty:v1 . docker run -ti --volume="$(pwd)":/bot --rm php-wechaty:v1 docker/ding-dong-bot.php
需求
- PHP 7.4+
安装
pecl安装
pecl install grpc pecl install protobuf pecl install yac
CentOS yum安装
# 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启用
yac.enable=1 yac.enable_cli=1
composer
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
# https://packagist.org.cn/packages/wechaty/php-wechaty
composer require wechaty/php-wechaty
测试
php examples/bot.php
开发
另请参阅
适用于 Node.js 开发者的 PHP
历史
master
v0.0.1 (Jul 09, 2020)
- 项目创建。
- 欢迎我们第一位 PHP Wechaty 贡献者
- 张春生(Chunsheng Zhang) https://github.com/zhangchunsheng (https://github.com/wechaty/php-wechaty)
相关项目
- Wechaty - Wechaty 个人账户的对话式 AI 聊天机器人 SDK(TypeScript)
- Python Wechaty - Python WeChaty 个人账户的对话式 AI 聊天机器人 SDK(Python)
- Go Wechaty - Go WeChaty 个人账户的对话式 AI 聊天机器人 SDK(Go)
- Java Wechaty - Java WeChaty 个人账户的对话式 AI 聊天机器人 SDK(Java)
- Scala Wechaty - Scala WeChaty 个人账户的对话式 AI 聊天机器人 SDK(Scala)
- PHP Wechaty - PHP WeChaty 个人账户的对话式 AI 聊天机器人 SDK(PHP)
- .NET(C#) Wechaty - .NET(C#) WeChaty 个人账户的对话式 AI 聊天机器人 SDK(.NET/C#)
徽章
[](https://github.com/wechaty/php-wechaty)
贡献者
- @zhangchunsheng - 张春生(Chunsheng Zhang)
创建者
- @zhangchunsheng - 张春生(Chunsheng Zhang)
版权 & 许可证
- 代码 & 文档 © 2020 Wechaty 贡献者 https://github.com/wechaty
- 代码根据 Apache-2.0 许可证发布
- 文档根据 Creative Commons 发布