Wechaty は、8 行の PHP でボットを作成できるチャットボット作成者向けの会話 SDK です。
「Wechaty は素晴らしいソリューションです。このリンクを認識するユーザーはさらに増えると思います。」
— @Gcaufy、Tencent エンジニア、WePY の著者「泣きたくなるほど便利です。」
— @xinbenlv、Google エンジニア、HaoShiYou.org 創設者「最高の WeChat 開発ライブラリ」リンク
— @Jarvis、Baidu エンジニア「Wechaty により、事業者はイベントを計画し、ユーザーを維持し、ビジネスを収益化する方法を考える時間が増えます」リンク
— @lijiarui、Juzi.BOT 創設者兼 CEO。「js を知っているなら、Wechaty を試してみてください。使い方は簡単です。」
— @Urinx Uri Lee、WeixinBot(Python) の作者
詳細については、Wiki:Voice Of Developer をご覧ください。
Wechaty は、何千人もの開発者によって多くの ChatBot プロジェクトで使用されています。他の開発者と会話したい場合は、Wechat で次の QR コードをシークレット コードphp wechatyでスキャンし、 Wechaty PHP 開発者ホームに参加してください。
他の 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
で上書きでき、サーバーまたはクライアントを検証するルート CA 証明書を設定します。Puppet サーバーの場合:
環境変数 | オプション | 説明 |
---|---|---|
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 | サーバー TLS を無効にするにはtrue を設定します |
Puppet クライアントの場合:
環境変数 | オプション | 説明 |
---|---|---|
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 | クライアント TLS を無効にするにはtrue 設定します |
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 に組み込まれています。wechaty の TS コードは 3,000 行しかなく、wechaty-puppet 抽象化によって適切に設計され、分離されているため、TypeScript(TS) を PHP に変換するのはそれほど難しくありません。 3,000 行の TypeScript コードを翻訳しました。もうすぐ終わります。
Wechaty のエコシステムはすでに TypeScript で構築されているため、すべてを PHP で実装する必要はありません。特に 2020 年 2 月には、wechaty-puppet-service 実装による @chatie/grpc サービス抽象化モジュールが完成しました。
次の図は、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) |
+--------------------------+ +--------------------------+
WeChat 画像をさまざまなサイズにダウンロードする役割を担うImage
という名前の 100 行のクラスがあります。
これは、Wechaty の方法で TypeScript を PHP に変換する方法を示す優れた例です。
翻訳に興味があり、その動作を確認したい場合は、TypeScript と PHP でこれら 2 つのImage
クラス ファイルを同時に読んで比較することから始めると良いでしょう。
仕掛品...
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 )