rtippin / messenger-bots

消息机器人插件

v1.15.0 2024-05-23 20:43 UTC

README

Latest Version on Packagist Total Downloads Tests StyleCI License

Preview

此包是 rtippin/messenger 的插件。

注意

  • 使用集成在 Messenger 中的机器人功能不需要此包。
  • 有关创建自定义机器人处理程序和包的更多文档,请访问官方的 Chat Bots 文档。

功能

  • 现成的机器人动作处理程序和包,可以插入核心消息包。
  • 仅注册您希望使用的机器人,或让我们自动注册我们提供的所有机器人。
  • 包含的机器人处理程序
    • Chuck Norris 机器人
    • 抛硬币机器人
    • 命令机器人
    • 爸爸笑话机器人
    • 文档查找机器人
    • Giphy 机器人
    • 侮辱机器人
    • 邀请机器人
    • 笑话机器人
    • Kanye West 机器人
    • 敲门机器人
    • 位置机器人
    • 核弹机器人
    • 随机图片机器人
    • 反应炸弹机器人
    • 反应机器人
    • 回复机器人
    • 石头剪刀布机器人
    • 掷骰子机器人
    • 天气预报机器人
    • 维基百科机器人
    • YoMomma 机器人
    • YouTube 机器人
  • 包含的包装机器人
    • 游戏包
    • 笑话师包
    • Neo 包

先决条件

  • 要使用此包,您必须已经安装了核心 Messenger 包。
  • 您必须在 messenger.php 配置中启用机器人,或您的 .env 文件中。
  • 除非您想注册自己的事件订阅者,否则应启用内置的机器人订阅者。
  • 如果订阅者被排队,请确保您的队列工作进程处理定义的通道,默认为 messenger-bots
MESSENGER_BOTS_ENABLED=true
'bots' => [
    'enabled' => env('MESSENGER_BOTS_ENABLED', false),
    'subscriber' => [
        'enabled' => true,
        'queued' => true,
        'channel' => 'messenger-bots',
    ],
],

安装

通过 Composer

composer require rtippin/messenger-bots

配置

'weather_api_key' => env('BOT_WEATHER_API_KEY'),
'ip_api_key' => env('BOT_LOCATION_API_KEY'),
'youtube_api_key' => env('BOT_YOUTUBE_API_KEY'),
'giphy_api_key' => env('BOT_GIPHY_API_KEY'),
'random_image_url' => env('BOT_RANDOM_IMAGE_URL', 'https://source.unsplash.com/random'),
'auto_register_all' => env('BOT_AUTO_REGISTER_ALL', false),

发布配置文件

php artisan vendor:publish --tag=messenger-bots
  • 要使用天气预报机器人,您必须从 Weather API 获取 API 密钥。
  • 要使用 YouTube 机器人,您必须从 Google Developers Console 获取 API 密钥。
  • 要使用 Giphy 机器人,您必须从 Giphy 获取 API 密钥。
  • 您可以使用位置机器人而不需要 API 密钥,但对于商业用途,您必须从 IP API 获取 API 密钥。
  • 随机图片机器人将使用 Unsplash 作为默认端点来抓取随机图片。您可以覆盖此端点。

自动注册处理程序和包

  • 如果您计划使用提供的所有机器人处理程序和包装机器人,您可以通过启用 BOT_AUTO_REGISTER_ALL 标志来跳过手动注册它们。

更新您的 .env

BOT_AUTO_REGISTER_ALL=true

手动注册处理程序和机器人包

  • 在您的 MessengerServiceProvider(或您的任何提供者)中,您必须注册您希望启用在您的应用程序中的所有机器人处理程序和机器人包。
  • 您可以使用 MessengerBots 门面来注册处理程序和包。请确保您在 boot 方法中这样做。

示例

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use RTippin\Messenger\Facades\MessengerBots;
use RTippin\MessengerBots\Bots\ChuckNorrisBot;
use RTippin\MessengerBots\Bots\CoinTossBot;
use RTippin\MessengerBots\Bots\CommandsBot;
use RTippin\MessengerBots\Bots\DadJokeBot;
use RTippin\MessengerBots\Bots\DocumentFinderBot;
use RTippin\MessengerBots\Bots\GiphyBot;
use RTippin\MessengerBots\Bots\InsultBot;
use RTippin\MessengerBots\Bots\InviteBot;
use RTippin\MessengerBots\Bots\JokeBot;
use RTippin\MessengerBots\Bots\KanyeBot;
use RTippin\MessengerBots\Bots\KnockBot;
use RTippin\MessengerBots\Bots\LocationBot;
use RTippin\MessengerBots\Bots\NukeBot;
use RTippin\MessengerBots\Bots\RandomImageBot;
use RTippin\MessengerBots\Bots\ReactionBombBot;
use RTippin\MessengerBots\Bots\ReactionBot;
use RTippin\MessengerBots\Bots\ReplyBot;
use RTippin\MessengerBots\Bots\RockPaperScissorsBot;
use RTippin\MessengerBots\Bots\RollBot;
use RTippin\MessengerBots\Bots\WeatherBot;
use RTippin\MessengerBots\Bots\WikiBot;
use RTippin\MessengerBots\Bots\YoMommaBot;
use RTippin\MessengerBots\Bots\YoutubeBot;
use RTippin\MessengerBots\Packages\GamesPackage;
use RTippin\MessengerBots\Packages\JokesterPackage;
use RTippin\MessengerBots\Packages\NeoPackage;

class MessengerServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(): void
    {
        MessengerBots::registerHandlers([
            ChuckNorrisBot::class,
            CoinTossBot::class,
            CommandsBot::class,
            DadJokeBot::class,
            DocumentFinderBot::class,
            GiphyBot::class,
            InsultBot::class,
            InviteBot::class,
            JokeBot::class,
            KanyeBot::class,
            KnockBot::class,
            LocationBot::class,
            NukeBot::class,
            RandomImageBot::class,
            ReactionBombBot::class,
            ReactionBot::class,
            ReplyBot::class,            
            RockPaperScissorsBot::class,
            RollBot::class,
            WeatherBot::class,
            WikiBot::class,
            YoMommaBot::class,
            YoutubeBot::class,
        ]);

        MessengerBots::registerPackagedBots([
            GamesPackage::class,
            JokesterPackage::class,
            NeoPackage::class,
        ]);
    }
}

注册的处理程序和包现在可以在向机器人添加操作或安装打包机器人时选择。

致谢 - Richard Tippin

许可证 - MIT

有关更多信息,请参阅许可证文件