genkovich/dialog-flow-bot-man-middleware

Middleware for BotMan (BotMan Studio). Integration with DialogFlow API v2.

0.0.6 2021-03-30 15:28 UTC

This package is auto-updated.

Last update: 2024-04-29 04:21:29 UTC


README

BotMan Middleware to connect DialogFlow with BotMan

Latest Version on Packagist Packagist

Thank's to @eclips16. The code source was taken from pull request.

Installation

Composer

composer require genkovich/dialog-flow-bot-man-middleware

Usage

.env

GOOGLE_CLOUD_PROJECT=project-id
GOOGLE_APPLICATION_CREDENTIALS=/path/to/security-file.json

Where can I get this variables?

  • Login at https://dialogflow.cloud.google.com/
  • Create NewAgent (or use an existing one)
  • Click on "Settings" icon (1)
  • Copy your project id (2) into .env file
  • Click on project id (2)

Step one

  • After that you will find "Service accounts" section (click (1) or (2))

Step

  • Click on "Create service account", fill "name" field and click "Create"

Step

  • On the next step you have to add two roles, "DialogFlow API Admin" and "DialogFlow API Client" and click "Done"

Step

  • Now, go to the page "Manage keys"

Step

  • Create new key in .json format

Step

  • Move downloaded file into project root directory
  • Add path to file in .env

Code example

$dialogflow = \BotMan\Middleware\DialogFlow\V2\DialogFlow::create('en');
$botman->middleware->received($dialogflow);
$botman->hears('smalltalk.(.*)', function ($bot) {
    $extras = $bot->getMessage()->getExtras();
    $bot->reply($extras['apiReply']);
})->middleware($dialogflow);

smalltalk.(.*) - there is action name pattern Step

If you create actions with different prefixes, you can use ->ignoreIntentPattern()

$dialogflow = DialogFlow::create('en')->ignoreIntentPattern();

Security Vulnerabilities

If you discover a security vulnerability within BotMan, please send an e-mail to Marcel Pociot at m.pociot@gmail.com. All security vulnerabilities will be promptly addressed.

License

BotMan is free software distributed under the terms of the MIT license.