PHPackages                             tudor2004/google-bot-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. tudor2004/google-bot-laravel

ActiveLibrary[API Development](/categories/api)

tudor2004/google-bot-laravel
============================

Google Chat Bot for Laravel

v0.1.0(8y ago)0891MITPHP

Since Dec 15Pushed 8y ago2 watchersCompare

[ Source](https://github.com/tudor2004/google-bot-laravel)[ Packagist](https://packagist.org/packages/tudor2004/google-bot-laravel)[ RSS](/packages/tudor2004-google-bot-laravel/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

Laravel Package for Google Chat Bot
===================================

[](#laravel-package-for-google-chat-bot)

This package allows you to handle Google Chat Bot commands triggered through the new Google Chat Web Client. You can register multiple bots, each with it's custom commands.

Requirements
------------

[](#requirements)

Laravel 5

Installation
------------

[](#installation)

Install the package using [Composer](https://getcomposer.org/) package manager. Run following command in your project root:

```
composer require tudor2004/google-bot-laravel
```

Afterwards create an outgoing webhook on the new Google Chat Web Client for each of the bots registered.

Laravel 5
---------

[](#laravel-5)

If you are allowing package discovery, than you don't need to do anything. The package registers it's own service provider and the `GoogleBot` facade.

Otherwise, add firstly the service provider to the `providers` array in `config/app.php`:

```
'providers' => [
  Tudorica\GoogleBot\GoogleBotServiceProvider::class,
],
```

Then add the facade to your `aliases` array:

```
'aliases' => [
  ...
  'GoogleBot' => Tudorica\GoogleBot\Facades\GoogleBotFacade::class,
],
```

Usage
-----

[](#usage)

After you've successfully registered your outgoing webhooks create a controller that responds to the webhook calls. The Google Chat pushes there events that are then handled by the bots registered.

Note that if you're using the facade in a namespace (e.g. `App\Http\Controllers` in Laravel 5) you'll need to either `use GoogleBot` at the top of your class to import it, or append a backslash to access the root namespace directly when calling methods, e.g. `\GoogleBot::run($botClass, $data)`.

```
// Handle commands for a custom 'audio' bot. We pass all the request data that the Google Chat event sends us.
namespace App\Http\Controllers;

class WebhookController extends Controller
{
    public function webhook(Request $request)
    {
        try {

            return GoogleBot::run(AudioBot::class, $request->all());

        } catch(BotException $ex) {
            return [
                'text' => 'Something wrong happend';
            ];
        }
    }
}
```

### Registering bots

[](#registering-bots)

Each bot must implement the BotContract interface, available in this package. This interface demands that you define the `name()` and `commands()` methods.

```
namespace App\Bots;

use Tudorica\GoogleBot\Contracts\BotContract;

class AudioBot extends BotContract
{
     public function name(): string
     {
         return 'Radio';
     }

     public function commands(): array
     {
         return [
             AudioVolume::class
         ];
     }
}
```

### Registering commands

[](#registering-commands)

As you can see in the previous example, each bot can register multiple commands. Each command has to implement the `CommandContract` interface which demands that you define the `allowedUsers()`, `name()`, `description()` and a `handle()` method.

```
namespace App\Commands;

use Tudorica\GoogleBot\Contracts\CommandContract;

class AudioVolume implements CommandContract
{
    /**
     * You can here define a list of users that can perform this command. Use [*] to allow everyone.
     */
    public function allowedUsers(): array
    {
        return ['*'];
    }

    /**
     * Define here the command name. You can also use here regular expressions.
     */
    public function name(): string
    {
        return '!audio volume (.+)';
    }

    /**
     * This description message will be used for the help.
     */
    public function description(): string
    {
        return 'Set volume.';
    }

    /**
     * The handler the executes the command. This has to respond with a string, that will be in the end be returned in the chat room.
     */
    public function handle(string $command): string
    {
        // Some logic for turning the volume of your speakers up or down...

        return 'Ok, volume is now ' . $volume . '.';
    }
}
```

###  Health Score

25

—

LowBetter than 36% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community5

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3118d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2884281?v=4)[Tudor-Dan Ravoiu](/maintainers/tudor2004)[@tudor2004](https://github.com/tudor2004)

### Embed Badge

![Health badge](/badges/tudor2004-google-bot-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/tudor2004-google-bot-laravel/health.svg)](https://phpackages.com/packages/tudor2004-google-bot-laravel)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.3M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172437.8k11](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

94452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
