achais/laravel-wechat-reply

适用于Laravel 5.5及更高版本的微信回复处理

v1.1.1 2020-12-31 07:07 UTC

This package is auto-updated.

Last update: 2024-09-05 17:09:30 UTC


README

可视化配置微信公众号自动回复规则,自动匹配回复消息。即将支持:可视化页面、匹配自定义处理方法。

StyleCI build status

环境要求

  • PHP >= 7.0

安装

$ composer require achais/laravel-wechat-reply -vvv

配置

在 config/app.php 中加入我们的 ServiceProvider

'providers' => [
    // Application Service Providers...
    Achais\LaravelWechatReply\ServiceProvider::class,
],

如果你的 laravel >= 5.5 其实可以跳过上面这一步

发布配置文件和静态文件

php artisan vendor:publish --provider="Achais\LaravelWechatReply\ServiceProvider"

创建数据库表

php artisan migrate

每次执行 migrate 之前最好看一下当前状态, php artisan migrate:status 毕竟数据是无价的

使用

自动回复编辑

通过浏览器访问 /wechat-reply 默认用户名密码是 admin admin
你也可以通过在 .env 文件中添加

WECHAT_REPLY_USER=your_username  
WECHAT_REPLY_PASSWORD=your_password  

来自定义登录用户名和密码

代码调用

use Achais\LaravelWechatReply\Models\WeixinRule;
use Achais\LaravelWechatReply\Models\WeixinReply;
use Achais\LaravelWechatReply\Models\WeixinKeyword;
use Achais\LaravelWechatReply\WechatReply;

// ====== 规则 ======

// 查看全部规则
$rules = WeixinRule::all();

// 创建随机回复一个匹配消息的规则, 名称已存在会报错
$rule = WeixinRule::create(['rule_name' => '规则一', 'reply_mode' => 'random']);

// 创建回复全部匹配消息的规则, 名称已存在会报错
$rule = WeixinRule::create(['rule_name' => '规则二', 'reply_mode' => 'all']);

// 查找或创建规则
$rule = WeixinRule::findOrCreate('规则三', 'random');

// 根据 ID 查找规则
$ruleOne = WeixinRule::findById(1);

// 根据 名称 查找规则, 因为规则中名称唯一所以提供查找功能
$ruleOne = WeixinRule::findByName('规则一');


// ====== 关键词 ======

// 创建一个需要全匹配的关键词, 关联 "规则一"
$keywordOne = WeixinKeyword::create(['keyword' => '关键词一', 'full_match' => true], $ruleOne);

// 创建一个需要半匹配(模糊搜索)的关键词, 关联 "规则一"
$keywordTwo = WeixinKeyword::create(['keyword' => '关键词二', 'full_match' => false], $ruleOne);

// 根据 ID 查找关键词
$keywordTwo = WeixinKeyword::findById(2);


// ====== 回复消息, 更多`消息类型`有待补充 ======

// 创建文本内容的回复消息, 关联 "规则一"
$reply = WeixinReply::create(['type' => 'text', 'content' => '你好'], $ruleOne); // 文字回复, 关联 "规则一"

// 创建图片内容的回复消息, 关联 "规则一"
$reply = WeixinReply::create(['type' => 'image', 'content' => '永久素材 MEDIA_ID'], $ruleOne);

// 创建图文内容的回复消息, 关联 "规则一"
$reply = WeixinReply::create(['type' => 'news', 'content' => '图文内容'], $ruleOne);

// 根据 ID 查找回复消息
$replyOne = WeixinReply::findById(1);


// ====== 关键词匹配功能 ======

// 收到用户消息 "二"
$keyword = '';

// 你会从 "你好", "图片消息", "图文消息" 中随机收到一个消息, 返回 WechatReply 对象集合
$replies = WechatReply::query($keyword);

/**
Collection {#893 ▼
  #items: array:1 [▼
    0 => WeixinReply {#891 ▶}
  ]
}
*/


// ====== 删除关联关系 ======

// 删除回复、关键词
WeixinKeyword::deleteById(1);
WeixinReply::deleteById(1);

// 删除规则 (关联的回复和关键词也自动删除)
WeixinRule::deleteById(1);
WeixinRule::deleteByName('规则二');

贡献

您可以通过以下三种方式之一进行贡献

  1. 使用问题追踪器提交错误报告。
  2. 问题追踪器上回答问题或修复错误。
  3. 贡献新功能或更新wiki。

代码贡献过程并不非常正式。您只需要确保遵循PSR-0、PSR-1和PSR-2编码规范。任何新的代码贡献都必须附有适用的单元测试。

许可证

MIT