npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

botbuilder-location-v2

v1.0.1

Published

An open-source location picker control for Microsoft Bot Framework powered by Google Maps and Bing's Maps REST services. This control makes the process of collecting and validating the user's desired location in a conversation easy and reliable.

Downloads

13

Readme

Location Control for Microsoft Bot Framework

Overview

Use Google Maps and Bing Maps API to collect and validate the user's location with your Microsoft Bot Framework bot in Node.js. Google Maps validates the location based on the user's input utterance, and Bing Maps generates the static images.

Note that this is a fork from botbuilder-location, which uses Bing Maps API.

Prerequisites

To start using the control, you need to obtain a Bing Maps API subscription key and a Google places API key. You can sign up to get a free Bing Maps key with up to 10,000 transactions per month in Azure Portal.

You can find out how to sign up to get a free Google places API key here.

Code Highlights

Installation

Install the botbuilder-location module using npm.

npm install --save botbuilder-location-v2
   

Usage

Add the botbuilder-location-v2 library to your bot.

var locationDialog = require('botbuilder-location-v2');
bot.library(locationDialog.createLibrary(process.env.BING_MAPS_API_KEY, process.env.GOOGLE_MAPS_API_KEY));

Add a .env file containing the BING_MAPS_API_KEY and GOOGLE_MAPS_API_KEY variables.

Calling the location control with default parameters

The example initiates the location control with default parameters, which returns a custom prompt message asking the user to provide an address.

locationDialog.getLocation(session,
 { prompt: "Where should I ship your order? Type or say an address." });

Using FB Messenger's location picker GUI dialog

FB Messenger supports a location picker GUI dialog to let the user select an address. If you prefer to use FB Messenger's native dialog, pass the useNativeControl: true option.

var options = {
    prompt: "Where should I ship your order? Type or say an address.",
    useNativeControl: true
};
locationDialog.getLocation(session, options);

Handling returned location

The following example shows how you can leverage the location object returned by the location control in your bot code.

locationDialog.create(bot);

bot.library(locationDialog.createLibrary(process.env.BING_MAPS_API_KEY, process.env.GOOGLE_MAPS_API_KEY));

bot.dialog("/", [
    function (session) {
        locationDialog.getLocation(session, {
            prompt: "Where should I ship your order? Type or say an address."
        });
    },
    function (session, results) {
        if (results.response) {
            var place = results.response;
            session.send(place.streetAddress);
        }
        else {
            session.send("OK, I won't be shipping it");
        }
    }
]);

More Information

Read these resources for more information about the Microsoft Bot Framework, Bot Builder SDK and Bing Maps REST Services: