matucana / weather-bot
向 vk.com 发送天气通知的机器人
Requires
- php: >=7.4
- cmfcmf/openweathermap-php-api: 3.3.*
- http-interop/http-factory-guzzle: 1.0.*
- monolog/monolog: *
- php-di/php-di: ^6.3
- php-http/guzzle6-adapter: 2.0.*
- symfony/dotenv: 5.2.*
- vkcom/vk-php-sdk: 5.101.*
Requires (Dev)
- phpunit/phpunit: ^9.5
README
天气机器人
这是一个简单的项目,用于将天气信息发送到Vkontakte的群聊中。
本项目解决了什么问题?
有一个Vkontakte群聊,群内是小型温室农场的员工。为了规划一天的活动,经常需要了解天气预报。本项目通过使用 OpenWeatherMap API 获取天气预报,格式化后发送到Vkontakte群聊。使用cron调度发送。
安装和使用
Weather bot 可在 Packagist 上找到(使用语义化版本控制),通过Composer安装Weather bot是推荐的安装方式。
要安装,请执行以下命令
composer create-project matucana/weather-bot
进入 /config/ 目录,并将文件 example.env 重命名为 .env
在.env文件中填写必要的设置
- openweathermap.org API密钥
- 获取天气所需位置的地理纬度。
- 获取天气所需位置的地理经度。
- vk.com API密钥
- 要发送消息的群聊ID
根据需要设置cron任务以启动index.php文件。
处理器
当前版本中包含两个已准备好的处理器:Matucana\WeatherBot\Handlers\VkHandler - 用于向Vkontakte群聊发送消息。Matucana\WeatherBot\Handlers\FileHandler - 用于将预报保存到文件。
创建处理器
您可以创建自己的处理器,例如用于发送到另一个消息平台,或保存到文件。
为此,您需要创建一个实现了接口的类 Matucana\WeatherBot\Handlers\Handler
<?php use Matucana\WeatherBot\Handlers\Handler; class MainHandler implements Handler { public function handle(string $message) { // TODO: Implement handle() method. } }
可以使用以下方法添加处理器
$app->addHandler(Handler $mainHandler)
$mainHandler = new MainHandler(); $app->addHandler(Handler $mainHandler); $app->run();
如果您想添加多个处理器,请使用方法 $app->addHandlers(array $handlers)
$mainHandler = new MainHandler(); $vkHandler = new VkHandler($_ENV['VK_API_KEY'], $_ENV['VK_PEER_ID']); $app->addHandlers([$mainHandler, $vkHandler]); $app->run();
有用链接
许可证
MIT许可证
版权所有 © 2021 Matucana
以下对本软件及其相关文档文件(以下简称“软件”)的副本的任何人,在此免费授予无条件的许可,以无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得本软件的人进行上述操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在所有副本或软件的实质性部分中。
本软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途适用性或非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他原因,与软件或其使用或操作有关。