wechaty/php-wechaty

PHP Wechaty 是一个用 PHP 编写的聊天机器人 RPA SDK。

v0.0.6 2021-11-24 08:27 UTC

This package is auto-updated.

Last update: 2024-09-21 09:15:08 UTC


README

Packagist PHP Version Support PHP

PHP Wechaty

PHP Wechaty Getting Started Wechaty in PHP

查看代码

连接聊天机器人

Powered by Wechaty

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 Friday.BOT QR Code

立即扫描,因为其他 Wechaty PHP 开发者也想与你交流!(密钥:php wechaty)

入门

1. Docker

Docker Pulls Docker Layers

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

新环境变量

  1. 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/grpcwechaty-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类源代码

如果您对翻译感兴趣并想了解其工作原理,同时阅读和比较这两个Image类文件将是一个很好的开始。

待办事项列表

  • TS: TypeScript
  • SLOC: 源代码行数

Wechaty内部模块

  1. 类Wechaty
  2. 类Contact
  3. 类ContactSelf
  4. 类Message
  5. 类Room
  6. 类Image
  7. 类Accessory
  8. 类Config
  9. 类Favorite
  10. 类Friendship
  11. 类MiniProgram
  12. 类RoomInvitation
  13. 类Tag
  14. 类UrlLink

微信外部模块

  1. 类 FileBox
  2. 类 MemoryCard
  3. 类 WechatyPuppet
  4. 类 WechatyPuppetService

用法

工作进行中...

docker

docker build -t php-wechaty:v1 .
docker run -ti --volume="$(pwd)":/bot --rm php-wechaty:v1 docker/ding-dong-bot.php

需求

  1. 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)

  1. 项目创建。
  2. 欢迎我们第一位 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#)

徽章

Wechaty in PHP

[![Wechaty in PHP](https://img.shields.io/badge/Wechaty-PHP-7de)](https://github.com/wechaty/php-wechaty)

贡献者

  1. @zhangchunsheng - 张春生(Chunsheng Zhang)

创建者

版权 & 许可证

  • 代码 & 文档 © 2020 Wechaty 贡献者 https://github.com/wechaty
  • 代码根据 Apache-2.0 许可证发布
  • 文档根据 Creative Commons 发布