When it comes to trying new food, people know what they don't want as often as they do know what they don't want. This bot is for anyone who is open but indecisive when it comes to trying new foods.
What it does
NOpenTable finds high end, quality restaurants near you based on your set location. It takes into account the foods that you say nope to and suggests a new restaurant based on those preferences. It then allows you to either continue adjusting your preferences or make a reservation via OpenTable if you are ready.
How we built it
We used python 3.6 as our main development language. API.ai is used for natural language processing, allowing us to know the general intent of the user, without hard coding all possible responses from the user. Heroku is used as the webhook for NOpenTable. Our Facebook Messenger bot receives the message from the user, which is sent along with any requested payloads. The message callback is sent to our Heroic webhook. Heroku processes it using the python code connected to the master branch of our GitHub repository. The python code is written to send the message as a string to API.ai to process the user's intent. We then act on the user's intent and send back the correct response using Messenger Send API.
Challenges we ran into
Many references were outdated and used python 2.7 rather than python 3+. Heroku's free tier lags and sends multiple post requests when waking up. We are also beginner level programmers and were unfamiliar with how to use APIs in general.
Accomplishments that we're proud of
Developing a working Messenger bot
What we learned
API.ai, OpenTable API, pymessenger, Messenger API, webhooks
What's next for NOpenTable
Making reservations through the bot.