How to use actions-on-google - 10 common examples

To help you get started, we’ve selected a few actions-on-google examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github laurenthu / dorothycares / firebase / functions / index.js View on Github external
exports.dorothyCares = functions.https.onRequest((request, response) => {
  // 1. declaring our app so that we can make requests
  const app = new App({
    request,
    response
  });
  // 2. Logging the request
  console.log('Request headers: ' + JSON.stringify(request.headers));
  console.log('Request body: ' + JSON.stringify(request.body));

  function giveRessources(app) {
    // Keeping track of the version of the function that will be deployed
    console.log('give ressources v1.5');
    let technology = app.getArgument(TECH_ARGUMENT);
    // make the request to our api to have the informations
    console.log('https://dorothycares.herokuapp.com/ressources/' + technology);
    https.get('https://dorothycares.herokuapp.com/ressources/' + technology, (res) => {
      // declaring the body
      let body = '';
github NGRP / node-red-contrib-viseo / archives / api-ai / server-api-ai.js View on Github external
const receive = (node, config, req, res) => { 
    let json = req.body
    // try { json = JSON.parse(json); } catch (ex) { console.log('Parsing Error', ex, json) }

    let app = new DialogflowApp({request: req, response: res});

    if(json.originalRequest == undefined) {
        console.log(json);
        node.warn('Empty request received');
        return;
    }

    let data = botmgr.buildMessageFlow({ message : json }, {
        userLocale: 'message.originalRequest.data.user.locale',
        userId:     'message.originalRequest.data.user.userId', 
        convId:     'message.originalRequest.data.conversation.conversationId',
        payload:    'message.originalRequest.data.inputs[0].rawInputs[0].query',
        inputType:  'message.originalRequest.data.inputs[0].rawInputs[0].inputType',
        source:     CARRIER
    })
github rusinikita / voice-assistant-apps-start / events / DevFest2017 / webhook / index.js View on Github external
exports.devfest = functions.https.onRequest((request, response) => {
    console.log('Request headers: ' + JSON.stringify(request.headers))
    console.log('Request body: ' + JSON.stringify(request.body))

    // Construct actions app object, processing request
    const app = new App({ request, response })
    const actionMap = new Map()
    actionMap.set(ACTION_BOOKS_SHOW_INFO, bookSelected)
    actionMap.set(ACTION_BOOKS_SHOW_INFO_BY_NAME, bookSelectedByName)    
    actionMap.set(ACTION_AUTHOR_SHOW_INFO, authorInfoRequested)
    app.handleRequest(actionMap)

    function bookSelected(app) {
        const optionKey = app.getContextArgument('actions_intent_option', 'OPTION').value;
        
        app.setContext('books-last3-followup', 2, {
            book: BOOKS_DUMMY[optionKey].name,
            author: BOOKS_DUMMY[optionKey].author
        })
        console.log('Selected book' + JSON.stringify(optionKey) + ", " + JSON.stringify(app.getContexts()))
        // Compare the user's selections to each of the item's keys
        if (!optionKey) {
github fossasia / susi_gassistantbot / app.js View on Github external
app.post('/', function(request, response) {
    //console.log('headers: ' + JSON.stringify(request.headers));
    //console.log('body: ' + JSON.stringify(request.body));

    const assistant = new Assistant({
        request: request,
        response: response
    });

    function responseHandler(app) {
        // intent contains the name of the intent you defined in the Actions area of API.AI
        let intent = assistant.getIntent();
        switch (intent) {
            case SUSI_INTENT:
                var query = assistant.getRawInput(SUSI_INTENT);
                console.log(query);

                var options = {
                    method: 'GET',
                    url: 'http://api.susi.ai/susi/chat.json',
                    qs: {
github actions-on-google / smart-home-nodejs / src / index.ts View on Github external
expressApp.use(morgan('dev'))
expressApp.use(bodyParser.json())
expressApp.use(bodyParser.urlencoded({extended: true}))
expressApp.set('trust proxy', 1)

Auth.registerAuthEndpoints(expressApp)

let jwt
try {
  jwt = require('./smart-home-key.json')
} catch (e) {
  console.warn('Service account key is not found')
  console.warn('Report state and Request sync will be unavailable')
}

const app = smarthome({
  jwt,
  debug: true,
})

// Array could be of any type
// tslint:disable-next-line
async function asyncForEach(array: any[], callback: Function) {
  for (let index = 0; index < array.length; index++) {
    await callback(array[index], index, array)
  }
}

async function getUserIdOrThrow(headers: Headers): Promise {
  const userId = await Auth.getUser(headers)
  const userExists = await Firestore.userExists(userId)
  if (!userExists) {
github androidthings / photobooth / firebase / functions / index.js View on Github external
exports.photoboothAssistantApp = functions.https.onRequest((req, res) => {
  const app = new Assistant({request: req, response: res});
  console.log('Request headers: ' + JSON.stringify(req.headers));
  console.log('Request body: ' + JSON.stringify(req.body));

  const actionMap = new Map([
    // Starting the interaction, asking if the user likes it, picture retakes
    [APIAI.action.START, handle.start],
    [APIAI.action.PICTURE_DENIED, handle.takePicture],
    // asking if the user wants style to their selected photo
    [APIAI.action.PICTURE_APPROVED, handle.stylePictureInquiry],
    // asking the user if they want to upload/print their photo
    [APIAI.action.STYLE_PICTURE_APPROVED, handle.sharePhotoInquiryStall],
    [APIAI.action.STYLE_PICTURE_DENIED, handle.sharePhotoInquiry],
    // Uploading the picture
    [APIAI.action.PICTURE_UPLOAD_APPROVED, handle.photoShared],
    [APIAI.action.PICTURE_UPLOAD_DENIED, handle.photoNotShared],
    // Fallback and other actions
github voxable-labs / actions-on-google-api-ai-boilerplate / server.js View on Github external
app.post('/', function(req, res, next) {
  // Log the request headers and body, to aide in debugging. You'll be able to view the
  // webhook requests coming from API.AI by clicking the Logs button the sidebar.
  logObject('Request headers: ', req.headers);
  logObject('Request body: ', req.body);
    
  // Instantiate a new API.AI assistant object.
  const assistant = new ApiAiAssistant({request: req, response: res});

  // Declare constants for your action and parameter names
  const ASK_WEATHER_ACTION = 'askWeather';  // The action name from the API.AI intent
  const CITY_PARAMETER = 'geo-city'; // An API.ai parameter name

  // Create functions to handle intents here
  function getWeather(assistant) {
    console.log('Handling action: ' + ASK_WEATHER_ACTION);
    let city = assistant.getArgument(CITY_PARAMETER);
    
    // Make an API call to fetch the current weather in the requested city.
    // See https://developer.yahoo.com/weather/
    let weatherRequestURL = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast" +
        "%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22" +
        encodeURIComponent(city) +
        "%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"
github actions-on-google / dialogflow-conversation-components-nodejs / actions-sdk / functions / index.js View on Github external
function list(conv) {
  if (!conv.hasScreen) {
    conv.ask('Sorry, try this on a screen device or select the ' +
      'phone surface in the simulator.');
    return;
  }
  conv.ask('This is a simple response for a list.');
  conv.ask(new Suggestions(intentSuggestions));
  // Create a list
  conv.ask(new List({
    title: 'List Title',
    items: {
      // Add the first item to the list
      [SELECTION_KEY_ONE]: {
        synonyms: [
          'synonym of title 1',
          'synonym of title 2',
          'synonym of title 3',
        ],
        title: 'Title of First List Item',
        description: 'This is a description of a list item.',
        image: new Image({
          url: IMG_URL_AOG,
          alt: 'Image alternate text',
github actions-on-google / dialogflow-conversation-components-nodejs / actions-sdk / functions / index.js View on Github external
function carousel(conv) {
  if (!conv.hasScreen) {
    conv.ask('Sorry, try this on a screen device or select the ' +
      'phone surface in the simulator.');
    return;
  }
  conv.ask('This is a simple response for a carousel.');
  conv.ask(new Suggestions(intentSuggestions));
  // Create a carousel
  conv.ask(new Carousel({
    items: {
      // Add the first item to the carousel
      [SELECTION_KEY_ONE]: {
        synonyms: [
          'synonym of title 1',
          'synonym of title 2',
          'synonym of title 3',
        ],
        title: 'Title of First Carousel Item',
        description: 'This is a description of a carousel item.',
        image: new Image({
          url: IMG_URL_AOG,
          alt: 'Image alternate text',
        }),
github actions-on-google / actionssdk-conversation-components-nodejs / functions / index.js View on Github external
function list(conv) {
  conv.ask('This is a simple response for a list.');
  conv.ask(new Suggestions(intentSuggestions));
  conv.ask(new List({
    title: 'List Title',
    items: {
      // Add the first item to the list
      [SELECTION_KEY_GOOGLE_ASSISTANT]: {
        synonyms: [
          'Assistant',
          'Google Assistant',
        ],
        title: 'Item #1',
        description: 'Description of Item #1',
        image: new Image({
          url: 'https://www.gstatic.com/images/branding/product/2x/assistant_48dp.png',
          alt: 'Google Assistant logo',
        }),
      },