Skip to content

An extremely simple API for handling requests and responses for DialogFlow in PHP.

Notifications You must be signed in to change notification settings

ryderdamen/PHP-DialogFlow-Webhooks-Fulfillment-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CircleCI

PHP Dialogflow Webhook Fulfillment

A simple API for handling webhook requests and responses from DialogFlow in PHP.

Getting Started

Everything you need should be in the Webhook.php file with the Webhook class. Here are a few examples of getting set up.

Sending a simple response to all platforms

To send a simple response to all platforms, use the following code

include('Webhook.php');
$args = ['projectId' => 'test-project-id'];
$wh = new Webhook($args);
$wh->respond_simpleMessage('Say this out loud', 'Display this text on screen');

Retrieving Data

Data is posted from the DialogFlow service to a location of your choosing (in the fulfillment tab). To retrieve it, use any of the below API calls.

Get All Decoded Data

// Instantiate
include('Webhook.php');
$args = ['projectId' => 'test-project-id'];
$wh = new Webhook($args);

// Get all data as an array
$allData = $wh->getDecodedWebhook();

Get the intent of the conversation

// Instantiate
include('Webhook.php');
$args = ['projectId' => 'test-project-id'];
$wh = new Webhook($args);

// Get the intent name of the conversation
$intentName = $wh->get_intent();

Get any parameters DialogFlow has filtered out for you

// Instantiate
include('Webhook.php');
$args = ['projectId' => 'test-project-id'];
$wh = new Webhook($args);

// Get all parameters as an array
$parametersArray = $wh->get_parameters();

// OR, get a specific parameter. If it does not exist, the function will return FALSE
$parameterValue = $wh->get_parameter('country');

Sending Data

Sending data is quite easy, simply use any of the below API calls.

Building Google-Device-Specific Actions

The build_* functions create specific rich markups that can be used to send more complicated information to devices running the google assistant.

Sending a simple message

Here's an example of how to set up a simple service for only google devices.

// Instantiate
include('Webhook.php');
$wh = new Webhook('test-project-id');


// Build the response
$textToSpeech = "Say this text out loud";
$displayText = "Display this text on screen";
$wh->build_simpleResponse($textToSpeech, $displayText);


// Send the response
$wh->respond();

Sending a SSML response

If you want to add more nuance to your speech, consider using SSML.

// Instantiate
include('Webhook.php');
$wh = new Webhook('test-project-id');


// Build the response
$ssml = '<speak> Say this out loud, wait three seconds <break time="3s"/> then continue speaking. </speak> ';
$displayText = "Display this text on screen";
$wh->build_ssmlResponse($ssml, $displayText);


// Send the response
$wh->respond();

Sending an audio message

Using SSML you can send only audio back to a user. Simply provide the url, or urls (as an array), to the audio files like so.

// Instantiate
include('Webhook.php');
$wh = new Webhook('test-project-id');


// Build the response
$displayText = "Display this text on screen";
$wh->build_audioResponse( 'https://www.example.com/examples/mp3/example1.mp3', $displayText);


// Send the response
$wh->respond();

Other

Ending a conversation

By calling the endConversation() method, you can indicate to dialogFlow that you are not expecting a response. By default, a response from the user will be expected.

About

An extremely simple API for handling requests and responses for DialogFlow in PHP.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages